winfrom的三层查询的方法

实现选择科室之后进行查询数据库的信息

给控件写函数 判断是否DepartmentcomboBox中是否有数据,若没有数据则吧执行函数

 private void DepartmentcomboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (DepartmentcomboBox.Text != "")
            {
                searchData();
            }

        }

WinForm是一种用于开发Windows桌面应用程序的技术。在WinForm应用程序中,常用的三层架构模式可以用于将应用程序的不同功能和责任分离开来,以提高代码的可维护性和可扩展性。 三层架构通常包括以下三个层次: 1. 数据访问层(Data Access Layer,DAL):负责与数据源进行交互,包括数据库的连接、查询、插入、更新和删除等操作。可以使用ADO.NET或者Entity Framework等技术来实现。

    private void searchData()
        {
//使用函数保存
            //CheckProjectBll cpb = new CheckProjectBll();
            //int pagesize = int.Parse(this.toolStripComboBox1.Text);
            //dataGridView1.DataSource = cpb.getCheckProjectDataSet(currentpage, tstxtProjectName.Text, tscboProperty.Text, pagesize);
            //dataGridView1.DataMember = "searchdata";
            //totalnum = cpb.getCheckProjectCount(tstxtProjectName.Text, tscboProperty.Text);
            ChooseDoctorBLL choose = new ChooseDoctorBLL();
            dataGridView1.DataSource = choose.getCheckProjectDataSet(DepartmentcomboBox.Text);
            dataGridView1.DataMember = "searchdata";


        }

2. 业务逻辑层(Business Logic Layer,BLL):负责处理应用程序的业务逻辑,对数据进行处理和操作。通常包括数据的验证、计算、转换等操作。这一层的代码应该是与具体实现无关的,可以复用于其他的应用程序。

 public DataSet getCheckProjectDataSet(string department1)
        {
            ChooseDoctorDAL cpd = new ChooseDoctorDAL();
            DataSet ds = cpd.getCheckProjectDataSet(department1);
            return ds;
        }

        //public int getCheckProjectCount(string projectName, string strproper)
        //{
        //    CheckProjectDal cpd = new CheckProjectDal();
        //    int i= cpd.getCheckProjectCount(projectName, strproper);
        //    return i;
        //}

        public List<ChooseDoctorModel> getCheckProjectList(ChooseDoctorModel cpm)
        {
            ChooseDoctorDAL cpd = new ChooseDoctorDAL();
            return cpd.getCheckProjectList(cpm);
        }

3. 用户界面层(User Interface Layer,UI):负责与用户进行交互,提供用户界面的展示和交互逻辑。在WinForm中,通常使用窗体(Form)和控件(Control)来实现用户界面。 在查询数据的过程中,可以按照以下流程进行: 1. 用户在界面中输入查询条件,并点击查询按钮。 2. 用户界面层将查询条件传递给业务逻辑层。 3. 业务逻辑层根据查询条件调用数据访问层的方法进行数据查询。 4. 数据访问层将查询结果返回给业务逻辑层。 5. 业务逻辑层对查询结果进行处理和转换,然后将结果返回给用户界面层。 6. 用户界面层将查询结果展示给用户。 在实际开发中,可以根据具体需求和项目规模进行调整和扩展,例如可以引入服务层、缓存层等。同时,还需要注意在不同层次之间进行良好的接口设计和数据传递,以确保系统的稳定性和性能。

写一个封装类来进入数据库

public static  class FrmChooseDoctor
    {
        static string connstr = ConfigurationManager.ConnectionStrings["SQLConnString"].ConnectionString;

        public static DataSet getDatasetdata(SqlParameter[] sqlParameters, string sqlstr)
        {
            SqlConnection conn = new SqlConnection(connstr);
            DataSet ds = new DataSet();
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = sqlstr;
                cmd.Connection = conn;
                if (sqlParameters != null)
                {
                    cmd.Parameters.AddRange(sqlParameters);
                }
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                sda.Fill(ds, "searchdata");
                return ds;
            }
            catch (Exception ex)
            {
                DataTable dt = new DataTable();
                DataColumn dc = new DataColumn();
                dc.ColumnName = "错误提示";
                dt.Columns.Add(dc);
                DataRow dr = dt.NewRow();
                dr["错误提示"] = ex.Message;
                dt.Rows.Add(dr);
                ds.Tables.Add(dt);
                return ds;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }

        internal static DataSet getDatasetData(SqlParameter[] sqlParameter, string sqlstr)
        {
            throw new NotImplementedException();
        }
    }

写一个实体类来保存字段信息

//挂号单
        public string CaseNumber { get; set; }
        public string RealName { get; set; }
        public string Age { get; set; }
        public string regDepartment { get; set; }
        public string Sex { get; set; }
        public string PatientID { get; set; }
        public DateTime RegistTime { get; set; }
        public string Doctor { get; set; }
        public string DoctorID { get; set; }
        public string regDoctorLevel { get; set; }
        public string regMoney { get; set; }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值