📄 queryfrm.cs
字号:
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 + -