asp.net 3.5从入门到精通9-12(5)

2019-06-02 13:52

图9-17 实现下一页效果 图9-18 实现上一页效果

DataList控件虽然不支持分页,但是能够通过编程实现DataList控件的分页效果。DataList控件在模板编辑和代码开发上虽然没有GridView方便,但是却提高了灵活性,能够自定义分页和数据显示。

9.6.5 使用SQLHelper操作数据库

使用控件,能够方便开发人员的开发和使用,但是很多情况下,不能使用控件来实现,所以很多情况都需要使用ADO.NET操作数据库中的数据,SQLHelper是将ADO.NET中对数据操作的类和对象进行的封装的一个类库,使用SQLHelper能够提高数据库操作的效率。

1.创建SQLHelper

SQLHelper类经常在数据库开发中使用,不仅封装了数据库操作,也提高了数据库操作的安全性,SQLHelper在微软的开发中和DEMO中经常被使用,SQLHelper通常用于多层设计,如果需要使用SQLHelper类,可以到微软官方下载最新的SQLHelper类,也可以自行编写SQLHelper类。如果自行创建SQLHelper类,则在解决方案管理器中新建一个类库,如图9-19所示。

创建类库后,删除自动生成的Class1类,并创建一个新类,类名为SQLHelper,如图9-20所示。

图9-19 添加类库 图9-20 创建SQLHelper类

如果使用下载的SQLHelper类,则可以单击解决方案管理器,单击右键,选择添加现有项,然后选择现有项目添加即可。在SQLHelper类下对数据操作进行封装,开发人员能够使用自己封装的类进行数据操作,示例代码如下所示。

#region //数据库连接串

263

private static readonly string database = “数据库”; private static readonly string uid = “用户名”; private static readonly string pwd = “密码”; private static readonly string server = “服务器”;

//配置数据库信息 //配置用户名信息 //配置密码信息 //配置服务器信息

private static readonly string condb = \ '\

Connection Lifetime=0;packet size=32767;Connection Reset=false; async=true\设置连接字串 #endregion

#region//DataAdapter方法 返回DataSet数据集 ///

/// DataAdapter方法 返回DataSet数据集

///

///

///

///

public static DataSet DataAdapter(string sqlCmd, SDACmd command, string tabName, params SqlParameter[] paraList) {

SqlConnection con = new SqlConnection(condb); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = sqlCmd; if (paraList != null) {

cmd.CommandType = CommandType.Text; foreach (SqlParameter para in paraList) { cmd.Parameters.Add(para); } }

SqlDataAdapter sda = new SqlDataAdapter(); switch (command) {

case SDACmd.select:

//实现适配器

//创建连接对象

//创建Command对象 //使用连接对象 //配置连接字串

//配置Command类型 //遍历参数 //添加参数 //创建适配器 //查找条件

//如果为select执行

sda.SelectCommand = cmd; break;

case SDACmd.insert: sda.InsertCommand = cmd; break;

case SDACmd.update: sda.UpdateCommand = cmd; break;

case SDACmd.delete: sda.DeleteCommand = cmd; break; }

DataSet ds = new DataSet(); sda.Fill(ds, tabName); return ds; }

//如果为insert执行

//如果为update执行

//如果为delete执行

//创建数据集 //填充数据集 //返回数据集

在上述代码中,还需要通过一个枚举类型进行switch操作,枚举类型用于判断执行的操作,示例代码如下所示。

264

public enum SDACmd { select, delete, update, insert }

//定义枚举类型

定义的枚举类型用于在程序中进行筛选操作,用于指定SQL语句执行的操作。在SQLHelper类中,还需要封装DataReader方法进行DataReader的封装和实现,开发人员能够使用SQLHelper类中的DataReader方法进行数据库的读取,示例代码如下所示。

public static SqlDataReader ExecReader(string sqlcmd, params SqlParameter[] paraList) {

SqlConnection con = new SqlConnection(condb); //创建连接对象 SqlCommand cmd = new SqlCommand(); //创建Command对象 cmd.Connection = con; //使用连接 cmd.CommandText = sqlcmd; //配置SQL语句 if (paraList != null) {

cmd.CommandType = CommandType.Text; foreach (SqlParameter para in paraList) { cmd.Parameters.Add(para); } }

con.Open();

//配置Command类型 //添加参数 //打开连接

SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); return sdr; }

上述代码实现了DataReader对象,使用DataReader能够填充SqlDataReader对象并进行数据的循环输出。在ADO.NET中,通常需要执行SQL语句进行数据库的操作,在SQLHelper类中,同样需要封装执行SQL语句的操作以便能够快速执行数据操作。

public static void ExecNonQuery(string sqlcmd, params SqlParameter[] paraList) {

using (SqlConnection con = new SqlConnection(condb)) //创建连接对象 {

SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = sqlcmd;

//创建Command对象 //使用连接 //配置执行类型

if (paraList != null) {

cmd.CommandType = CommandType.Text; foreach (SqlParameter para in paraList) { cmd.Parameters.Add(para); } }

con.Open(); cmd.ExecuteNonQuery(); } }

//配置执行类型 //添加参数 //打开数据连接 //执行SQL语句

上述代码编写了SQLHelper类操作数据库的函数,通过执行函数并传递参数,即可实现数据库的插入、更新和删除。

2.使用SQLHelper

创建完成SQLHelper类后,需要为应用程序配置SQLHelper的基本属性,代码如下所示。

private static readonly string database = \ private static readonly string uid = \ private static readonly string pwd =\

//配置数据库 //配置用户名 //配置用户会密码

265

private static readonly string server = \

//配置服务器的值

上述代码为SQLHelper类配置了属性,当使用SQLHelper类时,系统会自动连接数据库,在完成使用后,系统会自动关闭数据库。如果需要在当前项目使用SQLHelper类,则需要添加引用来使用SQLHelper类,右击现有项目,在下拉菜单中选择【添加】选项,在【添加】选项中选择【现有项】选项,在弹出窗口中选择【项目】标签栏,就可以添加相同项目的类库,如图9-21所示。

图9-21 添加引用

引用添加完毕,在使用SQLHelper页面的CS页面中,需要添加命名空间,命名空间的名称和创建类库的名称相同,如果需要更改名称,可以通过修改类库的属性来修改。示例代码如下所示。

using MYSQL;

引用完毕后,就可以执行SQL语句,使用SQLHelper执行SQL语句非常方便,下面代码演示了如何执行插入、删除操作。

string strsql = \插入标题')\ SQLHelper.ExecNonQuery(strsql);

//编写SQL语句 //执行SQL语句

上述代码运行后,则会执行插入操作,相比于ADO.NET,封装后的代码更加简便易懂,删除操作代码如下所示。

string strsql2 = \ SQLHelper.ExecNonQuery(strsql2); string strsql = \

//编写SQL语句 //执行SQL语句 //编写SQL语句

当需要执行SELECT语句时,可以通过SQLHelper.DataAdapter获取数据,示例代码如下所示。

DataSet ds = SQLHelper.DataAdapter(strsql, SQLHelper.SDACmd.select, \

上述代码通过SQLHelper.DataAdapter获取数据,并创建了一个mydatatable虚拟表,填充DataSet对象。当需要获取DataSet对象中的数据时,和普通的DataSet对象一样。SQLHelper封装了ADO.NET中的许多方法,为开发人员提高了效率,同时也增加了安全性和模块化的特性。

注意:上述代码中的SQLHelper类能够执行的是SQL语句,如果需要执行存储过程,则需要更改SQLHelper类中的相应的CommandType属性的值。

9.7 小结

本章介绍了ADO.NET中操作数据库和执行数据库的一些方法,还介绍了如何编写和执行SQL语句,包括SQL INSERT、SQL UPDATE、SQL DELETE等数据操作语句,另外,本章还介绍了如何通过DataSet数据集实现插入、更新、删除等操作来深入了解ADO.NET。本章通过演示使用控件更新和操作数据库,

266

加强了控件操作数据库的示例,本章还包括:

? 使用ADO.NET操作数据库,介绍了ADO.NET操作数据库的方法。 ? ASP.NET创建和插入记录,介绍了SQL INSERT和数据操作。 ? ASP.NET更新数据库,介绍了SQL UPDATE和数据操作。 ? ASP.NET删除数据,介绍了SQL DELETE和数据操作。 ? 使用存储过程,介绍了如何使用存储过程。

? 数据库操作实例,介绍了企业应用中常用的SQLHelper,以及用户操作数据库的配置。

本章还介绍了如何创建和使用企业应用中常用的SQLHelper类、SQLHelper类能够简化数据使用,提高开发效率。下一章中将会讲解如何连接其他数据库。

267


asp.net 3.5从入门到精通9-12(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:我国企业客户关系管理现状及对策

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: