⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queryfrm.cs

📁 简单数据库
💻 CS
📖 第 1 页 / 共 4 页
字号:
                                    dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = false;
                                    dataGridViewQuery.ReadOnly = false;
                                    cell.Items.Clear();
                                    cell.Items.Add("And");
                                    cell.Items.Add("Or");
                                    cellIsUpdated = false;
                                    // When Cell_Clicked was revisited
                                    foreach (DataGVCell dataGVCell in cell_list)
                                    {
                                        if (dataGVCell._cellValue.Equals(""))
                                        {
                                            dataGVCell._cellClickedBefore = false;
                                            break;
                                        }
                                    }                                    
                                }
                                #endregion Columns of the Grid
                            }
                        }
                    }
                    else
                    {
                        if (cell_list.Contains(dataCell))
                        {
                            cell_list.Remove(dataCell);
                        }
                    }
                }                
            }
            else
            {
                dataGridViewQuery.ReadOnly = true;
                if(cell_list.Contains(dataCell))
                {
                    cell_list.Remove(dataCell);
                }
                // User tried to skip updation for the previous cell
                foreach (DataGVCell dataGVCell in cell_list)
                {
                    if (dataGVCell._cellValue.Equals(""))
                    {
                        dataGVCell._cellClickedBefore = true;
                        break;                    
                    }
                }
            }
            
        }

        private void dataGridViewQuery_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            dataGridViewQuery.ReadOnly = true;
            DataGridViewTextBoxCell tx = new DataGridViewTextBoxCell();
            tx.Value = dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
            dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex] = tx;
            cellIsUpdated = true;
            foreach (DataGVCell dataGVCell in cell_list)
            {
                if (dataGVCell._columnIndex == e.ColumnIndex && dataGVCell._rowIndex == e.RowIndex)//Current Cell
                {
                    dataGVCell._isUpdated = true;
                    dataGVCell._cellValue = tx.Value.ToString();
                    cellIsUpdated = true;
                    break;
                }
            }            
        }
        
        private void timer1_Tick(object sender, EventArgs e)
        {

            laspedTime = laspedTime.Add(new TimeSpan(0, 0, 1));
            string hr = laspedTime.Hours > 9 ? laspedTime.Hours.ToString() : "0" + laspedTime.Hours.ToString() + ":";
            string min = laspedTime.Minutes > 9 ? laspedTime.Minutes.ToString() : "0" + laspedTime.Minutes.ToString() + ":";
            string sec = laspedTime.Seconds > 9 ? laspedTime.Seconds.ToString() : "0" + laspedTime.Seconds.ToString();
            //object sender = System.Threading.Thread.CurrentThread;
            TimeArgs args = new TimeArgs(hr, min, sec, State.Working);
            UpdateTime(sender, args);
        }

        private void UpdateTime(object sender, TimeArgs e)
        {
            // Make sure we're on the right thread
            if (this.InvokeRequired == false)
            {
                if (e._state == State.Working)
                {
                    lblTimeDelay.Visible = true;
                    lblTimeDelay.Text = e._hours + ":" + e._minutes + ":" + e._seconds;
                }
                else
                {
                    lblTimeDelay.Visible = false;
                }
            }
            // Transfer control to correct thread
            else
            {
                UpdateTimeHandler
                  updateTime =
                  new UpdateTimeHandler(UpdateTime);
                Invoke(updateTime, new object[] { sender, e });
            }
        }
        private void StartTimer()
        {
            laspedTime = new TimeSpan(0, 0, 1);
            timer1.Enabled = true;
            timer1.Interval = 1000;
            timer1.Tick += new EventHandler(timer1_Tick);
            timer1.Start();
        }
        private void EndTimer()
        {
            timer1.Enabled = false;
            timer1.Stop();
            object sender = System.Threading.Thread.CurrentThread;
            TimeArgs e = new TimeArgs(string.Empty, string.Empty, string.Empty, State.Completed);
            UpdateTime(sender, e);
        }

        private void tabControl1_Selected(object sender, TabControlEventArgs e)
        {
            // User Clicked on Result Tab
            if (tabControl1.SelectedTab.Text.Contains("Result"))
            {
                saveToolStripMenuItem.Visible = true;
                runQueryToolStripMenuItem.Visible = false;
                openQueryToolStripMenuItem.Visible = false;
                deleteClauseToolStripMenuItem.Visible = false;
            }
            else
            {
                // User Clicked on Query Tab
                saveToolStripMenuItem.Visible = false;
                runQueryToolStripMenuItem.Visible = true;
                openQueryToolStripMenuItem.Visible = true;
                deleteClauseToolStripMenuItem.Visible = true;
            }
        }

        private void tabControl1_MouseClick(object sender, MouseEventArgs e)
        {
            // Allow User to remove the select tab
            if (e.Button == MouseButtons.Right)
            {
                MenuItem mItem = new MenuItem();
                mItem.Text = "Close Tab";               
                
                mItem.Click += new EventHandler(mItem_Click);
                ContextMenu _cMenu = new ContextMenu();
                _cMenu.MenuItems.Add(mItem);                
                TabControl tabControl = (TabControl)sender;
                currentSelectedTabPage = tabControl.SelectedTab;
                tabControl.ContextMenu = _cMenu;
                
            }
        }
        private void mItem_Click(object sender, EventArgs e)
        {
            if (!currentSelectedTabPage.Text.Contains("Query"))
            {
                tabControl1.TabPages.Remove(currentSelectedTabPage);
            }
        }
        // Make the Query run on a child thread
        private void runQueryToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (0 < tabControl1.TabCount && tabControl1.SelectedTab.Text.Contains("Query"))
            {
                // First Make Sure a Valid Query is formed
                // Well formed query? next version
                bool queryisValid = false;
                if (cell_list.Count % 4 == 0)
                    queryisValid = true;
                if (queryisValid)
                {
                    // Make this generic
                    // Run should not work if the current tab is not query -- fix
                    // Clear Cloumns
                    listViewQueryResults.Columns.Clear();

                    // Clear Items
                    listViewQueryResults.Items.Clear();
                    // Clear ColumnList
                    _columnListSelected.Clear();

                    //Initialize the list view columns to be displayed
                    for (int c = 0; c < objDataColumns.column_collection.Count; c++)
                    {
                        _columnListSelected.Add(objDataColumns.column_collection[c].ColumnName);
                    }

                    string queryString = FormQueryString();
                    
                    // get column names            
                    for (int c = 0; c < _columnListSelected.Count; c++)
                    {
                        listViewQueryResults.Columns.Add(_columnListSelected[c].ToString());
                    }
                    

                    // Set the View property of the ListView to details either in design mode or in the code
                    listViewQueryResults.View = View.Details;
                    #region DataTable
                    resultTable = new DataTable();
                    // First create the columns
                    for (int c = 0; c < objDataColumns.column_collection.Count; c++)
                    {
                        string columnName = objDataColumns.column_collection[c].ColumnName;
                        resultTable.Columns.Add(columnName.ToString());                    
                    }
                    // Add Values for each row
                    //for (int r = 0; r < objDataColumns.column_collection.Count; r++)
                    //{

                    //    DataRow dr = resultTable.NewRow();
                    //    for (int c = 0; c < objDataColumns.column_collection.Count; c++)
                    //    {
                    //        string columnName = objDataColumns.column_collection[c].ColumnName;
                    //        dr[columnName] = objDataColumns.column_collection[c]._columnValues[r].ToString();                            
                    //    }
                    //    resultTable.Rows.Add(dr);
                    //}
                    CDataBaseOps objDataBase = new CDataBaseOps();
                    string queryCommand = queryString;
                    // Populate Data Table
                    resultTable = objDataBase.ExecuteQuery(queryCommand);
                    if (resultTable.Rows.Count > 0)
                    {
                    }
                    #endregion DataTable
                    // Populate listview
                    // Display the number of rows found
                    this.lblStatus.Text = "Query Results: " + resultTable.Rows.Count + " results found";
                    if (0 < resultTable.Rows.Count)
                    {

                        ListViewItem lvItem = null;                        
                        foreach (DataRow dr in resultTable.Rows)
                        {
                            lvItem = new ListViewItem();
                            ListViewItem.ListViewSubItem itms0 = new ListViewItem.ListViewSubItem(lvItem, dr[_columnListSelected[0].ToString()] != System.DBNull.Value ? dr[_columnListSelected[0].ToString()].ToString() : string.Empty);
                            lvItem.SubItems[0] = itms0;
                            
                            if (1 < _columnListSelected.Count)
                            {
                                for (int c = 1; c < _columnListSelected.Count; c++)
                                {
                                    ListViewItem.ListViewSubItem itms1 = new ListViewItem.ListViewSubItem(lvItem, dr[_columnListSelected[c].ToString()] != System.DBNull.Value ? dr[_columnListSelected[c].ToString()].ToString() : string.Empty);
                                    lvItem.SubItems.Add(itms1);
                                    
                                }
                            }
                            this.listViewQueryResults.Items.Add(lvItem);
                        }
                    }
                    //for (int ctl = 0; ctl < tabControl1.SelectedTab.Controls.Count; ctl++)
                    //{
                    //    if (tabControl1.SelectedTab.Controls[ctl].Name == "labelResult")
                    //    {
                    //        // do whatever you want.
                    //        tabControl1.SelectedTab.Controls[ctl].Text = labelResult.Text;
                    //    }
                    //    if (tabControl1.SelectedTab.Controls[ctl].Name == "listViewResult")
                    //    {
                    //        // do whatever you want.

                    //    }
                    //}
                }
                else
                {
                    // Query is not formed well
                    InCompleteQuery incompleteFrm = new InCompleteQuery();
                    DialogResult res = incompleteFrm.ShowDialog();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -