这个工具的控件有点多,而且逻辑有点乱,没办法,毕竟不是面向普通用户的,纯粹就是一方便我自己从不同系统里面导出数据使用的小工具,怎么方便怎么来呗。
一、先说说窗体关闭事件,SelectData窗体来源可能是来自登录窗体打开,也可能是入口程序那里打开,所以要统一关闭事件。
private void SelectData_FormClosed(object sender, FormClosedEventArgs e)//窗体关闭,程序退出
{
DataOperation.Xml.SetRunFile(null);
Environment.Exit(0);
}
简单,就是把临时文件给删了,退出程序。
二、列出常见表的数据,comboBox1的SelectionChangeCommitted事件。
private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)//选择常见数据表,更新数据
{
if (comboBox1.SelectedIndex != 0)
{
DataTable DT = comboBox1.DataSource as DataTable;
int ID = comboBox1.SelectedIndex;
DataBaseName = DT.Rows[ID]["DataBaseName"].ToString();
DataTableName = DT.Rows[ID]["TableName"].ToString();
DataColumn = "*";
Conditions = null;
SqlCmdRefresh();
ColumnsRefresh();
dGVRefresh();
button3.Enabled = false;
}
}
看到没有,读取出comboBox1绑定的数据源,给定义好的那几个窗体内全部变量赋值,在按顺序执行预先定义好的函数,因为这里是选择常见表的,所以把button3给毙掉,都已经有了,没必要再保存一次吧。晕,忘记把button5给Show出来了,button5是删除常见表和常见命令的按钮,自己添加上去吧,否则就要去xml文件里面自己删除了。
三、选择用户数据库,列出该库所有表
private void comboBox2_SelectionChangeCommitted(object sender, EventArgs e)//选取数据库,同步列出该数据库所有用户表
{
button5.Hide();
if (comboBox2.SelectedIndex != 0)
{
string DataBaseName = comboBox2.SelectedValue.ToString();
DataTable DT = DataOperation.Sql.GetDataTable(DataBaseName);
if (DT != null)
{
comboBox3.DataSource = DT;
comboBox3.DisplayMember = "name";
comboBox3.ValueMember = "name";
comboBox3.Show();
}
else
{
MessageBox.Show("亲,这好像是个空数据库,找不到任何表!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
else
{
comboBox3.Hide();
}
}
很简单,根据comboBox2选中的数据库,读取所有用户表,塞到comboBox3里,同时把comboBox3显示出来。
四、同理,选中comboBox3中表,把表的数据全列出来,其实和comboBox1是一个鸟样的,区别是读取数据方式不一样,一个是从DataTable中读取,一个是从控件中读取。
private void comboBox3_SelectionChangeCommitted(object sender, EventArgs e)//选取数据表,更新数据
{
if (comboBox3.SelectedIndex != 0)
{
DataBaseName = comboBox2.SelectedValue.ToString();
DataTableName = comboBox3.SelectedValue.ToString();
DataColumn = "*";
Conditions = null;
SqlCmdRefresh();
ColumnsRefresh();
dGVRefresh();
}
}
五、根据常见命令列出数据,和comboBox1也是一个鸟样
private void comboBox4_SelectionChangeCommitted(object sender, EventArgs e)//选取常见Sql命令事件
{
if (comboBox4.SelectedIndex > 0)
{
DataTable DT = comboBox4.DataSource as DataTable;
int ID = comboBox4.SelectedIndex;
DataBaseName = DT.Rows[ID]["DataBaseName"].ToString();
DataTableName = DT.Rows[ID]["TableName"].ToString() ;
DataColumn = DT.Rows[ID]["DataColumn"].ToString();
Conditions = DT.Rows[ID]["Conditions