예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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;
        }
예제 #4
0
파일: frmFK.cs 프로젝트: hongkha336/Kar-SQL
        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 { }
        }