父窗体
public partial class GroupInquiry_UI : Form
{
public GroupInquiry_UI()
{
InitializeComponent();
}
#region 调用封装的clear类,控件初始化
private void btnClear_Click(object sender, EventArgs e)
{
//Clear这个类是我之前自己封装的,现在直接用!Clear(this, panel1)是Clear中的一个重载!
Clear clear = new Clear(this, panel1);
DataTable Table = null;
dataGridView1.DataSource = Table;
//控件的初始化
CmbName2.Enabled = false;
CmbName3.Enabled = false;
CmbMark2.Enabled = false;
CmbMark3.Enabled = false;
txtInfo2.Enabled = false;
txtInfo3.Enabled = false;
CmbRelation1.Enabled = false;
CmbRelation2.Enabled = false;
}
#endregion
#region 查询
private void btnSearch_Click(object sender, EventArgs e)
{
foreach (Control cl in panel1.Controls)
{
if ((cl is ComboBox || cl is TextBox) && cl.Enabled == true)
{
if (cl.Text.Trim() == \"\")
{
MessageBox.Show(\"请将您的信息填写完整!\", \"提示\", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;//退出过程
}
}
}
Entity.GroupInquiry_Info groupinquiry = new Entity.GroupInquiry_Info();//实例化实体
Facade.GroupInquiry_Facade groupFine = new Facade.GroupInquiry_Facade();
//给实体赋值
groupinquiry.CmbName1 = ToName(CmbName1.Text.Trim());
groupinquiry.CmbName2 = ToName(CmbName2.Text.Trim());
groupinquiry.CmbName3 = ToName(CmbName3.Text.Trim());
groupinquiry.CmbOper1 = CmbMark1.Text.Trim();
groupinquiry.CmbOper2 = CmbMark2.Text.Trim();
groupinquiry.CmbOper3 = CmbMark3.Text.Trim();
groupinquiry.CmbGroup1 = ToName(CmbRelation1.Text.Trim());
groupinquiry.CmbGroup2 = ToName(CmbRelation2.Text.Trim());
groupinquiry.txtInfo1 = txtInfo1.Text.Trim();
groupinquiry.txtInfo2 = txtInfo2.Text.Trim();
groupinquiry.txtInfo3 = txtInfo3.Text.Trim();
groupinquiry.GetDataTable = Getdbtable();//从数据库中获取表格(选择调用那个数据库)
DataTable result = new DataTable();
result = groupFine.GroupCheck(groupinquiry);
if (result.Rows.Count == 0)//没有查询到
{
MessageBox.Show(\"没有复合条件的记录,请重新选择条件\");
}
else
{
//MessageBox.Show(\"查找成功!\", \"提示\", MessageBoxButtons.OK, MessageBoxIcon.Information);
ToDgv(groupinquiry);//查询到以后调用子窗体中重写的方法显示数据
}
}
#endregion
#region 关闭
private void btnQuit_Click(object sender, EventArgs e)
{
this.Close();
}
#endregion
#region 自己构造的虚方法
public virtual string ToName(string combo)//转换中文字符为英文字符,在子窗体进行重写!
{
return \"\";
}
protected virtual string Getdbtable() //定义一个数据库中不同表的名字的虚方法,在子窗体进行重写
{
return \"\";
}
protected virtual void ToDgv(Entity.GroupInquiry_Info enGroupFind)//显示数据
{
}
#endregion
#region CmbRelation1选择与或的时候,出来下一条信息
private void CmbRelation1_SelectedIndexChanged(object sender, EventArgs e)
{
string relationship = CmbRelation1.Text.Trim();
switch (relationship)
{
case \"与\":
CmbName2.Enabled = true;
CmbMark2.Enabled = true;
txtInfo2.Enabled = true;
break;
case \"或\":
CmbName2.Enabled = true;
CmbMark2.Enabled = true;
txtInfo2.Enabled = true;
break;
}
}
#endregion
#region 当第一行所有的内容添加完毕,此时关系下拉框被激活
private void txtContent1_TextChanged(object sender, EventArgs e)
{
if (CmbName1.Text != \"\" && CmbMark1.Text != \"\" && txtInfo1.Text != \"\")
{
CmbRelation1.Enabled = true;
}
}
#endregion
#region 当第二行所有的内容添加完毕,此时关系下拉框被激活
private void txtContent2_TextChanged(object sender, EventArgs e)
{
if (CmbName2.Text != \"\" && CmbMark2.Text != \"\" && txtInfo2.Text != \"\")
{
CmbRelation2.Enabled = true;
}
}
#endregion
#region CmbRelation2选择与或的时候,出来下一条信息
private void CmbRelation2_SelectedIndexChanged(object sender, EventArgs e)
{
string relationship = CmbRelation1.Text.Trim();
switch (relationship)
{
case \"与\":
CmbName3.Enabled = true;
CmbMark3.Enabled = true;
txtInfo3.Enabled = true;
break;
case \"或\":
CmbName3.Enabled = true;
CmbMark3.Enabled = true;
txtInfo3.Enabled = true;
break;
}
}
#endregion
private void GroupInquiry_UI_Load(object sender, EventArgs e)
{
#region 操作符
CmbMark1.Items.Add(\">\");
CmbMark1.Items.Add(\"<\");
CmbMark1.Items.Add(\"=\");
CmbMark1.Items.Add(\"<>\");
CmbMark2.Items.Add(\">\");
CmbMark2.Items.Add(\"<\");
CmbMark2.Items.Add(\"=\");
CmbMark2.Items.Add(\"<>\");
CmbMark3.Items.Add(\">\");
CmbMark3.Items.Add(\"<\");
CmbMark3.Items.Add(\"=\");
CmbMark3.Items.Add(\"<>\");
#endregion
#region 设置控件不可用状态
CmbMark2.Enabled = false;
CmbMark3.Enabled = false;
CmbName2.Enabled = false;
CmbName3.Enabled = false;
CmbRelation1.Enabled = false;
CmbRelation2.Enabled = false;
txtInfo2.Enabled = false;
txtInfo3.Enabled = false;
#endregion
#region 设置复选框只可以选择不可以输入
this.CmbMark1.DropDownStyle = ComboBoxStyle.DropDownList;
this.CmbMark2.DropDownStyle = ComboBoxStyle.DropDownList;
this.CmbMark3.DropDownStyle = ComboBoxStyle.DropDownList;
this.CmbName1.DropDownStyle = ComboBoxStyle.DropDownList;
this.CmbName2.DropDownStyle = ComboBoxStyle.DropDownList;
this.CmbName3.DropDownStyle = ComboBoxStyle.DropDownList;
this.CmbRelation1.DropDownStyle = ComboBoxStyle.DropDownList;
this.CmbRelation2.DropDownStyle = ComboBoxStyle.DropDownList;
#endregion
}
#region 封装清空类
public class Clear
{
public Clear(GroupInquiry_UI form, Panel panal) //如果有panel控件,此处也可以添加一个panel清除
{
foreach (Control ctl in form.panel1.Controls)
{
//清空combobox
if (ctl is ComboBox)
{
ComboBox cmb = ctl as ComboBox;
cmb.SelectedIndex = -1;
}
//清空textbox
else if (ctl is TextBox)
{
TextBox txt = ctl as TextBox;
txt.Text = string.Empty;
}
}
}
}
#endregion
#region 清空,控件初始化
private void btnClear_Click_1(object sender, EventArgs e)
{
Clear clear = new Clear(this, panel1);
DataTable Table = null;
dataGridView1.DataSource = Table;
//控件的初始化
CmbMark2.Enabled = false;
CmbMark3.Enabled = false;
CmbName2.Enabled = false;
CmbName3.Enabled = false;
CmbRelation2.Enabled = false;
txtInfo2.Enabled = false;
txtInfo3.Enabled = false;
}
#endregion
#region 构造一个没有任何返回值的虚方法,来根据CmbName的内容,出现相应的下拉内容!
public virtual void addcontent(ComboBox name, ComboBox mark)
{
}
#endregion
继承窗体
public partial class AdminGroupInquiry_UI : UI.Admin.GroupInquiry_UI
{
public AdminGroupInquiry_UI()
{
InitializeComponent();
}
#region 重写了英文转换成数据库中所识别英文的方法
public override string ToName(string combo)//重写虚方法,将自己要的字段转化成数据库字段
{
switch (combo)
{
case \"卡号\":
return \"stuID\";
case \"姓名\":
return \"stuName\";
case \"性别\":
return \"sex\";
case \"年龄\":
return \"age\";
case \"学院\":
return \"department\";
case \"专业\":
return \"major\";
case \"班级\":
return \"grade\";
case \"与\":
return \"and\";
case \"或\":
return \"or\";
default:
return \"\";
}
}
#endregion
#region 重写了获取数据库中表的名字的方法
protected override string Getdbtable() //Select语句需求的数据库
{
return \"StuCard_Info\";
}
#endregion
#region 重写显示查询到的数据库中的数据
protected override void ToDgv(Entity.GroupInquiry_Info enGroupFind)//重写方法,显示结果
{
dataGridView1.DataSource = \"\";
DataTable dt = new DataTable();
Facade.GroupInquiry_Facade gf = new Facade.GroupInquiry_Facade();//去拿到数据库的数据
dt = gf.GroupCheck(enGroupFind);
if (dt.Rows.Count == 0)
{
MessageBox.Show(\"没有记录,请重新查询\");
}
else
{
//子类中的需要的东西,父窗体只负责显示
dataGridView1.DataSource = dt;
dataGridView1.Refresh();
}
}
#endregion
#region 重写根据CmbName的值,显示不同的cbomark的值
public override void addcontent(ComboBox name, ComboBox cbomark)
{
switch (name.Text)
{
case \"姓名\":
case \"性别\":
case \"学院\":
case \"专业\":
cbomark.Text = \"\";
cbomark.Items.Clear();
cbomark.Items.Add(\"=\");
cbomark.Items.Add(\"<>\");
break;
case \"卡号\":
case \"班级\":
case \"年龄\":
cbomark.Text = \"\";
cbomark.Items.Clear();
cbomark.Items.Add(\"=\");
cbomark.Items.Add(\"<>\");
cbomark.Items.Add(\"<\");
cbomark.Items.Add(\">\");
break;
}
}
#endregion
private void AdminGroupInquiry_UI_Load(object sender, EventArgs e)
{
CmbName1.Items.Add(\"卡号\");
CmbName1.Items.Add(\"姓名\");
CmbName1.Items.Add(\"性别\");
CmbName1.Items.Add(\"专业\");
CmbName1.Items.Add(\"年龄\");
CmbName1.Items.Add(\"学院\");
CmbName1.Items.Add(\"班级\");
CmbName2.Items.Add(\"卡号\");
CmbName2.Items.Add(\"姓名\");
CmbName2.Items.Add(\"性别\");
CmbName2.Items.Add(\"专业\");
CmbName2.Items.Add(\"年龄\");
CmbName2.Items.Add(\"学院\");
CmbName2.Items.Add(\"班级\");
CmbName3.Items.Add(\"卡号\");
CmbName3.Items.Add(\"姓名\");
CmbName3.Items.Add(\"性别\");
CmbName3.Items.Add(\"专业\");
CmbName3.Items.Add(\"年龄\");
CmbName3.Items.Add(\"学院\");
CmbName3.Items.Add(\"班级\");
}
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。


