1.4 公共类设计
开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重用率,也大大方便了代码的管理。
1.4.1 数据层功能设计
数据层设计主要实现逻辑业务层与SQL Server数据库建立一个连接访问桥。该层主要实现的功能方法为:打开/关闭数据库连接、执行数据的增、删、改、查等功能。
1.打开数据库连接的Open方法
建立数据库的连接,主要通过SqlConnection类实现,并初始化数据库连接字符串,然后通过State属性判断连接状态,如果数据库连接状态为关,则打开数据库连接。实现打开数据库连接的Open方法的代码如下:
例程01 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 打开数据库连接 con = new SqlConnection("Data Source=(local);DataBase=db_CMS;User ID=sa;PWD="); if (con.State == System.Data.ConnectionState.Closed) con.Open(); |
码贴士
SqlConnection类:表示SQL Server数据库的一个打开的连接。
State属性:数据库连接状态。
Open方法:打开数据库连接。
2.关闭数据库连接的Close方法
关闭数据库连接主要通过SqlConnection对象的Close方法实现。自定义Close方法关闭数据库连接的代码如下:
例程02 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 关闭连接 |
3.释放数据库连接资源的Dispose方法
由于DataBase类使用System.IDisposable接口,IDisposable接口声明了一个Dispose方法,所以应该完善IDisposable接口的Dispose方法,用来释放数据库连接资源。
实现释放数据库连接资源的Dispose方法代码如下:
例程03 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 释放数据库连接资源 |
4.初始化SqlParameter参数值
本程序向数据库中读写数据是以参数形式实现的(与使用存储过程读写数据类似)。其中MakeInParam方法用于传入参数,MakeParam方法用于转换参数。
实现MakeInParam方法和MakeParam方法的完整代码如下:
例程04 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 传入参数并且转换为SqlParameter类型 param = new SqlParameter(ParamName, DbType, Size); param.Direction = Direction; param.Value = Value; |
代码贴士
SqlParameter类:用参数名称、SqlDbType、大小和源列名称初始化SqlParameter类的新实例。
Direction属性:获取或设置一个值,该参数值为只可输入、只可输出、双向还是存储过程返回值参数。
Value属性:获取或设置该参数的值。
5.执行参数命令文本或SQL语句
RunProc方法为可重载方法。其中,RunProc(string procName)方法主要用于执行简单的数据库添加、修改、删除等操作(例如,SQL语句);RunProc(string procName, SqlParameter[] prams)方法主要用于执行复杂的数据库添加、修改、删除等操作(带参数SqlParameter的命令文本的SQL语句)。
实现可重载方法RunProc方法的完整代码如下:
例程05 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 执行参数命令文本(无数据库中数据返回) cmd.ExecuteNonQuery(); this.Close(); SqlCommand cmd = new SqlCommand(procName, con); |
代码贴士
ExecuteNonQuery方法:对连接执行Transact-SQL语句并返回受影响的行数。
this:this关键字引用类的当前实例。
SqlCommand类:表示要对SQL Server数据库执行的一个Transact-SQL语句或存储过程。
6.执行查询命令文本,并且返回DataSet数据集
RunProcReturn方法为可重载方法,返回值为DataSet类型。功能分别为执行带参数SqlParameter的命令文本,并返回查询DataSet结果集。下面代码中RunProcReturn(string procName, SqlParameter[] prams,string tbName)方法主要用于执行带参数SqlParameter的查询命令文本;RunProcReturn(string procName, string tbName)用于直接执行查询SQL语句。
可重载方法RunProcReturn的完整代码如下:
例程06 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 执行参数命令文本(有返回值) SqlDataAdapter dap = CreateDataAdaper(procName, null); dap.Fill(ds, tbName); |
代码贴士
SqlDataAdapter类:表示用于填充DataSet和更新SQL Server数据库的一组数据命令和一个数据库连接。
Fill方法:在DataSet中添加或刷新行以匹配使用DataSet和DataTable名称的数据源中的行。
7.将SqlParameter添加到SqlDataAdapter中
CreateDataAdaper方法创建一个SqlDataAdapter对象以此来执行命令文本。其完整代码如下:
例程07 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 将命令文本添加到SqlDataAdapter dap.SelectCommand.CommandType = CommandType.Text; //执行类型:命令文本 dap.SelectCommand.Parameters.Add(parameter); |
代码贴士
CommandType属性:获取或设置要对数据源执行的Transact-SQL语句或存储过程。CommandType属性值 如下:
StoredProcedure:存储过程的名称。
TableDirect:表的名称。
Text:SQL文本命令(默认)。
Add方法:添加SqlParameter对象。
8.将SqlParameter添加到SqlCommand中
CreateCommand方法创建一个SqlCommand对象以此来执行命令文本。完整代码如下:
例程08 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 将命令文本添加到SqlCommand |
| 回书目 上一节 下一节 |
|
· 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. |
· 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. |
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||