了解WPF的CS框架

    科技2024-11-03  13

    首先,让我们来了解一下什么是C/S框架,C/S框架分为两大部分【Service服务端 + Client客户端】,由三层架构组成【数据层、逻辑层、页面层】,数据层(连接数据库,简称DAL),逻辑层(逻辑处理,简称BLL),页面层(页面显示,简称UI)。其中,DAL&BLL组成C/S框架中的服务端,而UI页面层则是框架的客户端。使用三层架构写法的目的,防止数据层与逻辑层中的系统文件被不法分子偷取,单单只展示页面层给用户。 Service服务端(DAL + BLL + WCF):①起到系统与数据库之间的连接作用。②DAL数据层:它一个类库(并非应用程序),因此在VS中创建程序的服务端时,点击类库进行创建。 ③如何连接数据库【DAL】:Sqlserver数据库连接方式有多种,这里只介绍最常用的:通过SqlConnection和Sqlserver数据库用户名和密码验证来操作数据库,Data Source指的是数据库地址和端口号,需要注意的是地址和端口号之间是用",(逗号)"进行分隔的;Initial Catalog数据库名字;User ID和Password分别是指用户名和密码:public string strConnect = @“Data Source=(local);Initial Catalog=TTS;User ID=sa;Password=123”;④如何查询数据表【DAL】:

    //在()内,sql属于字符串类型变量,param则是数组类型变量,SqlParameter负责接收SQL存储过程语句,param负责接收参数 public DataTable QueryDataTable(String sql, SqlParameter[] param) { /* 实例化DataTable(DataTable负责接收查询到的数据) */ DataTable dt = new DataTable(); /* 建立数据库连接(using使用,SqlConnection方法打开数据库, 并通过已声明的数据库连接字符strConnect,去建立程序与数据库之间的连接) */ using (SqlConnection conn = new SqlConnection(strConnect)) { //打开连接 conn.Open(); //SqlDataAdapter创建数据连接(操控sql[存储过程]中具体的某conn[变量数据]) SqlDataAdapter da = new SqlDataAdapter(sql, conn); //获取或设置一个Transact-SQL语句或存储过程,用于在数据源中选择记录 da.SelectCommand.CommandType = CommandType.StoredProcedure; da.SelectCommand.Parameters.AddRange(param); //数据库查询,并返回查询到的相关数据到dt(DataTable实体类)中 da.Fill(dt); //关闭连接 conn.Close(); } //将接收了查询到的数据的dt,return返回 return dt; }

    ⑤新增&修改&删除数据【DAL】:

    /* 与查询不同,查询返回的是DataTable【表数据】, * 而新增修改等操作返回的则是int类型的数据,因此需要定义int类型的值去接收返回的数据 */ public int UpdateData(String sql,SqlParameter[] param) { //初始化int类型变量count,用于接收返回的更新后的数据 int count = 0; //创建数据库连接 using (SqlConnection conn = new SqlConnection(strConnect)) { //打开数据库连接 conn.Open(); //执行存储过程(创建数据连接) SqlCommand cnm = new SqlCommand(sql, conn); //获取存储过程名称 cnm.CommandType = CommandType.StoredProcedure; //添加序列化的数据参数(param) cnm.Parameters.AddRange(param); //更新数据库数据【ExecuteNonQuery()方法:返回受影响的行】 count = cnm.ExecuteNonQuery(); //关闭数据库连接 conn.Close(); } //return更新后的数据 return count; }

    ⑥查询数据集【DAL】:写法与查询数据表一致,唯有数据类型不同,数据表的类型是DataTable,而数据集的类型是DataSet,DataSet:内存中缓存,DataTable:内存数据表。

    ⑦二进制文件查询方法【DAL】(使用btye[]数组类型的变量接收二进制数据):

    public byte[] QueryDataByte(String sql, SqlConnection[] param) { using (SqlConnection conn = new SqlConnection(strConnect)) { conn.Open(); //打开连接 SqlDataReader dr = null; //初始化数据读取器 SqlCommand cmd = new SqlCommand(sql, conn); //创建命令对象 cmd.CommandType = CommandType.StoredProcedure; //设置命令的类型 cmd.Parameters.AddRange(param); //将参数添加进命令对象 dr = cmd.ExecuteReader(); //启动数据读取器 byte[] File = null; //初始化byte if (dr.Read()) //将二进制数据流添加进byte[]数组中 { File = (byte[])dr[0]; } dr.Close(); //关闭数据读取器 conn.Close(); //关闭连接 return File; //Return二进制数组文件 } }

    ⑧BLL逻辑层:逻辑层与DAL数据层的文件类型一致,同属于【类库】文件,直接在解决方案中右键新建项目,选择类库文件,命名为BLL后创建,它主要用于处理逻辑。 ⑨WCF服务应用程序(服务层):可以通过它去发布我们的服务应用,步骤【点击新建项目,选择WCF,点击右侧的WCF服务应用程序并创建,命名为WCFService,接着展开WCFService,找到引用,右键选择添加引用,在引用面板的项目中找到BLL,勾选后确定,BLL成功被WCF服务应用程序引用】;那么,如何将DAL包括进来呢?这次就不再是使用WCF引用DAL了,而是在BLL中添加DAL为引用,这样就能成功的将三者联系起来了。 3、Client客户端【UI页面层】:WPF应用程序创建的项目就是我们的UI页面层,也是主要面向用户所展示的客户端。

    Processed: 0.017, SQL: 8