private bool isKeyInTable(int Col, String key) { List <Field> myField = rF.read_File_Infor(tb, db); List <String[]> my_Table_Contents = rF.read_File_Infor_FK(tb, db); // nội dung của cột hiện hành key // cột này ở vị trí col => kiểm tra xem Fkey với cái nào String myC = myField[Col].ColName; String myFKColName = ""; String myFKColTable = ""; //vào my tab contentsFK foreach (String [] str in my_Table_Contents) { if (str[0].Equals(myC)) { myFKColTable = str[1]; myFKColName = str[2]; break; } } // Lấy được tên cột và bảng cần tìm rồi. //đọc dữ liệu từ bảng FK lên List <Field> myField_FK = rF.read_File_Infor(myFKColTable, db); List <String[]> my_Table_Contents_FK = rF.read_Table_Contents(myFKColTable, db, myField_FK); // tìm vị trí có tên là khóa ngoại ở Field; int t = 0; for (int i = 0; i < myField_FK.Count; i++) { if (myField_FK[i].ColName.Equals(myFKColName)) { t = i; break; } } for (int i = 0; i < my_Table_Contents_FK.Count; i++) { if (my_Table_Contents_FK[i][t].Equals(key)) { return(true); } } return(false); }
public frmUpdateValues(string db, string tb) { keyHash = db; InitializeComponent(); this.db = db; this.tb = tb; rF = new readFile(); dt = new data_table(); wF = new writeFile(); myField = rF.read_File_Infor(tb, db); myPK_index = getListPrimaryKey(myField); myContents_FK = new List <String[]>(); datatype = new Datatypes(); myDatatype = new List <String>(); getDataType(); isUpdate = true; hash = new HashMD5(keyHash); }
private void btnHoanThanh_Click(object sender, EventArgs e) { if (txtTableName.Text.Trim().Equals("")) { MessageBox.Show("Tên bảng không được để trống"); txtTableName.Focus(); return; } List <Field> myField_1 = new List <Field>(); if (isAlter == 1) { myField_1 = rF.read_File_Infor(cmbTables.SelectedValue.ToString(), cmbDatabase.SelectedValue.ToString()); } List <int> delete_index = new List <int>(); List <Field> myField = new List <Field>(); for (int i = 0; i <= colCount; i++) { String text1 = getText("txtColName" + i.ToString()); String text2 = getText("txtColPro" + i.ToString()); bool text3 = isCheck("chk" + i.ToString()); if (!text1.Trim().Equals("") && !text2.Trim().Equals("")) { Field fi = new Field(text1, text2, text3); myField.Add(fi); } else { if (isAlter == 1) { delete_index.Add(i); } } } if (isAlter == 1) { try { rF.delete_file("database/" + cmbDatabase.SelectedValue.ToString() + "/" + cmbTables.SelectedValue.ToString() + "inf_.txt"); } catch { } } wF.write_Table_Infor(myField, txtTableName.Text.Trim(), cmbDatabase.SelectedValue.ToString()); if (isAlter == 1) { if (isSameField(myField, myField_1)) { return; } // lấy myField ra trước myField = rF.read_File_Infor(cmbTables.SelectedValue.ToString(), cmbDatabase.SelectedValue.ToString()); //Xóa file cũ. //backup file mới. List <String[]> my_Table_Contents = rF.read_Table_Contents(cmbTables.SelectedValue.ToString(), cmbDatabase.SelectedValue.ToString(), myField_1); List <String> myContents = new List <String>(); foreach (String[] str in my_Table_Contents) { String temp = ""; for (int i = 0; i < str.Length; i++) { if (!isInDelete(i, delete_index)) { temp += '\'' + str[i]; } } myContents.Add(temp); } if (isAlter == 1) { try { rF.delete_file("database/" + cmbDatabase.SelectedValue.ToString() + "/" + cmbTables.SelectedValue.ToString() + ".txt"); } catch { } } wF.write_Table_Contents(myContents, txtTableName.Text.ToString(), cmbDatabase.SelectedValue.ToString()); } if (isAlter == 1) { MessageBox.Show("Đã update table thành công"); } resetTable(); isAlter = 0; }
private void dgvData_CellClick(object sender, DataGridViewCellEventArgs e) { int r = dgvData.CurrentCell.RowIndex; int c = dgvData.CurrentCell.ColumnIndex; if (c == 1) { // Kiểm tra xem 0 có chữ chưa? //focus 0 if (dgvData.Rows[r].Cells[0].Value == null) { MessageBox.Show("Vui lòng chọn thuộc tính 1 trước"); // focus lại ô 0 dgvData.CurrentCell = dgvData.Rows[0].Cells[0]; return; } //====== } try { String colContents = ""; try { colContents = dgvData.Rows[r].Cells[c].Value.ToString(); } catch { }; if (!colContents.Equals("")) { // ĐỌC DỮ LIỆU QUA BÊN KIA String myTB = dgvData.Rows[r].Cells[1].Value.ToString(); List <Field> myField2 = new List <Field>(); myField2 = rF.read_File_Infor(myTB, dbName); if (myField2.Count == 0) { return; } List <String> listThuocTinh3 = new List <String>(); foreach (Field fi in myField2) { String str1 = dgvData.Rows[r].Cells[0].Value.ToString(); if (isSameDataType(str1, fi.ColName, myField2)) { listThuocTinh3.Add(fi.ColName); } } dataGridView1.DataSource = null; dataGridView1.Rows[0].Cells[0].Value = ""; cmbthuoctinh3.DataSource = listThuocTinh3; try { dataGridView1.Rows.RemoveAt(0); dataGridView1.Rows.RemoveAt(1); } catch { } dataGridView1.Rows.Add(myContents[r][2]); // MessageBox.Show(myContents[r][2]); } } catch { } }