public class Form1 : System.Windows.Forms.Form
?{
??private System.Windows.Forms.DataGrid dataGrid1;
??private System.Windows.Forms.OpenFileDialog openFileDialog1;
??private System.Windows.Forms.TabControl tabControl1;
??private System.Windows.Forms.TabPage tabPageNormal;
??private System.Windows.Forms.TabPage tabPageSearch;
??private System.Windows.Forms.Panel panel1;
??private System.Windows.Forms.Button btnSearch;
??private System.Windows.Forms.TextBox tbValue;
??private System.Windows.Forms.ComboBox cmbField;
??private System.Windows.Forms.DataGrid dataGrid2;
??private System.Windows.Forms.Button btnClose;
??private System.Windows.Forms.Button btnReadXml;
??private System.Windows.Forms.Button btnUpdate;
??///
??/// 必需的设计器变量。
??///
??private System.ComponentModel.Container components = null;
??public Form1()
??{
???//
???// Windows 窗体设计器支持所必需的
???//
???InitializeComponent();
???//
???// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
???//
??}
??///
??/// 清理所有正在使用的资源。
??///
??protected override void Dispose( bool disposing )
??{
???if( disposing )
???{
????if (components != null)
????{
?????components.Dispose();
????}
???}
???base.Dispose( disposing );
??}
???DataSet
???ds = new DataSet();
??///
??/// 应用程序的主入口点。
??///
??[STAThread]
??static void Main()
??{
???Application.Run(new Form1());
??}
??///
??/// 更新XML文件
??///
??///
??///
??private void btnUpdate_Click(object sender, System.EventArgs e)
??{
???ds.WriteXml(this.openFileDialog1.FileName);
???MessageBox.Show("更新完成!");
???this.dataGrid1.Focus();
??}
??///
??/// 读取XML文件
??///
??///
??///
??private void btnReadXml_Click(object sender, System.EventArgs e)
??{
???this.openFileDialog1.Filter = "数据文件|*.xml";
???if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
???{
????// 将读入的XML文件作为数据源绑定到DataGrid上
????ds.Reset();
????ds.ReadXml(this.openFileDialog1.FileName);
????this.dataGrid1.DataSource = ds;
????this.dataGrid1.Focus();
???}
??}
??///
??/// 选择某个子表时修改‘列表’
??///
??///
??///
??private void dataGrid1_DataSourceChanged(object sender, System.EventArgs e)
??{???
???// 如果子表名不存在
???if (this.dataGrid1.DataMember == "")
???{
????this.btnSearch.Enabled = false;
????this.tbValue.Clear();
????this.tbValue.Enabled = false;
????this.cmbField.Items.Clear();
???}?// 子表存在,将所有字段名赋值给ComboBox
???else
???{
????this.cmbField.Items.Clear();
????this.cmbField.Items.Add("请选择字段");
????foreach (DataColumn dc in ds.Tables[this.dataGrid1.DataMember].Columns)
????{
?????this.cmbField.Items.Add(dc.ColumnName);
????}
????this.cmbField.SelectedIndex = 0;
???}
??}
??///
??/// 用户选择了一个列名
??///
??///
??///
??private void cmbField_SelectedIndexChanged(object sender, System.EventArgs e)
??{
???if (this.cmbField.SelectedIndex != 0)
????this.tbValue.Enabled = true;
???else
????this.tbValue.Enabled = false;
??}
??///
??/// 用户输入了要搜索的内容
??///
??///
??///
??private void tbValue_TextChanged(object sender, System.EventArgs e)
??{
???if (this.tbValue.Text.Trim().Length 0)
????this.btnSearch.Enabled = true;
???else
????this.btnSearch.Enabled = false;
??}
??///
??/// 用户点击了“搜索”按钮
??///
??///
??///
??private void btnSearch_Click(object sender, System.EventArgs e)
??{
???// 将搜索结果存入一个DataView
???DataView
????dvSearch = new DataView();
???dvSearch.Table = ds.Tables[this.dataGrid1.DataMember];
???dvSearch.RowFilter = this.cmbField.Text + "='" + this.tbValue.Text.Trim() + "'";
???// 显示 DataView 的内容
???this.dataGrid2.DataSource = dvSearch;
???this.tabControl1.SelectedTab = this.tabPageSearch;
???this.tbValue.Clear();
??}
??///
??/// 关闭--查询结果页
??///
??///
??///
??private void btnClose_Click(object sender, System.EventArgs e)
??{
???this.tabControl1.SelectedTab = this.tabPageNormal;
??}
?}