【机房重构】——组合查询

建立父窗体

【机房重构】——组合查询_第1张图片

构造虚方法

//将汉字转化为数据库识别的形式
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
            
        }

建立子窗体

【机房重构】——组合查询_第2张图片

【机房重构】——组合查询_第3张图片

【机房重构】——组合查询_第4张图片

重写

//重写,表示查询的是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();
            }
        }

 

你可能感兴趣的:(C/S)