建立父窗体
构造虚方法
//将汉字转化为数据库识别的形式
public virtual string ToEnglish(string ctr)
{
return "";
}
//获得数据库名字
public virtual string GetdbName()
{
return "";
}
//显示数据
protected virtual void ToDgv(Entity.GroupQuery group)
{
}
点击查询
private void btnQuery_Click(object sender, EventArgs e)
{
#region 给实体赋值
Facade.GroupQueryFacade facade = new Facade.GroupQueryFacade();
Entity.GroupQuery group = new Entity.GroupQuery();
//从数据库中获取表格(选择调用哪一个数据库)
group.GetDBName = GetdbName();
group.comboBox1 = ToEnglish(comboBox1.Text.Trim());
group.comboBox2 = ToEnglish(comboBox2.Text.Trim());
group.comboBox3 = ToEnglish(comboBox3.Text.Trim());
group.comboBox7 = ToEnglish(comboBox7.Text.Trim());
group.comboBox8 = ToEnglish(comboBox8.Text.Trim());
group.comboBox4 = comboBox4.Text.Trim();
group.comboBox5 = comboBox5.Text.Trim();
group.comboBox6 = comboBox6.Text.Trim();
group.textBox1 = textBox1.Text.Trim();
group.textBox2 = textBox2.Text.Trim();
group.textBox3 = textBox3.Text.Trim();
//虚方法ToDgv,只实现了实现这个方法的传递
//他实现给在子类中传值,在子类中返回表显示出来
DataTable result = facade.GroupQuery(group);
if (result.Rows.Count != 0)
{
ToDgv(group);//查询到以后调用子窗体中重写的方法显示数据
MessageBox.Show("查找成功!", "提示");
}
else
{
MessageBox.Show("您查找的信息不存在", "提示");
}
#endregion
}
建立子窗体
重写
//重写,表示查询的是studentInfo
public override string GetdbName()
{
return "studentInfo";
}
//重写虚方法
public override string ToEnglish(string combo)
{
switch (combo)
{
case "学号":
return "UserID";
case "姓名":
return "UserName";
case "性别":
return "Sex";
case "系别":
return "Department";
case "年级":
return "Grade";
case "班级":
return "Class";
case "与":
return "and";
case "或":
return "or";
default:
return "";
}
}
//重写,显示查询结果
protected override void ToDgv(Entity.GroupQuery group)
{
dataGridView1.DataSource = "";
Facade.GroupQueryFacade facade = new Facade.GroupQueryFacade();
DataTable table = facade.GroupQuery(group);
if (table.Rows.Count == 0)
{
MessageBox.Show("没有记录");
}
else
{
dataGridView1.DataSource = table;
dataGridView1.Refresh();
}
}