asp.net使用SQLHelper操作数据库
使用控件,能够方便开发人员的开发和使用,但是很多情况下,不能使用控件来实现,所以很多情况都需要使用ADO.NET操作数据库中的数据,SQLHelper是将ADO.NET中对数据操作的类和对象进行的封装的一个类库,使用SQLHelper能够提高数据库操作的效率。
1.创建SQLHelper
SQLHelper类经常在数据库开发中使用,不仅封装了数据库操作,也提高了数据库操作的安全性,SQLHelper在微软的开发中和DEMO中经常被使用,SQLHelper通常用于多层设计,如果需要使用SQLHelper类,可以到微软官方下载最新的SQLHelper类,也可以自行编写SQLHelper类。如果自行创建SQLHelper类,则在解决方案管理器中新建一个类库,创建类库后,删除自动生成的Class1类,并创建一个新类,类名为SQLHelper.
如果使用下载的SQLHelper类,则可以单击解决方案管理器,单击右键,选择添加现有项,然后选择现有项目添加即可。在SQLHelper类下对数据操作进行封装,开发人员能够使用自己封装的类进行数据操作,示例代码如下所示
#region //数据库连接串
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 = "server='"+ server +"';database='" + database + "';uid=
'" + uid + "';pwd='" + pwd + "';Max Pool Size=100000;Min Pool Size=0;
Connection Lifetime=0;packet size=32767;Connection Reset=false; async=true"; //设置连接字串
#endregion
#region//DataAdapter方法 返回DataSet数据集
/// <summary>
/// DataAdapter方法 返回DataSet数据集
/// </summary>
/// <param name="sqlCmd">SQL语句</param>
/// <param name="command">操作参数 枚举类型</param>
/// <returns></returns>
public static DataSet DataAdapter(string sqlCmd, SDACmd command, //实现适配器
string tabName, params SqlParameter[] paraList)
{
SqlConnection con = new SqlConnection(condb); //创建连接对象
SqlCommand cmd = new SqlCommand(); //创建Command对象
cmd.Connection = con; //使用连接对象
cmd.CommandText = sqlCmd; //配置连接字串
if (paraList != null)
{
cmd.CommandType = CommandType.Text; //配置Command类型
foreach (SqlParameter para in paraList) //遍历参数
{ cmd.Parameters.Add(para); } //添加参数
}
SqlDataAdapter sda = new SqlDataAdapter(); //创建适配器
switch (command) //查找条件
{
case SDACmd.select: //如果为select执行
sda.SelectCommand = cmd;
break;
case SDACmd.insert: //如果为insert执行
sda.InsertCommand = cmd;
break;
case SDACmd.update: //如果为update执行
sda.UpdateCommand = cmd;
break;
case SDACmd.delete: //如果为delete执行
sda.DeleteCommand = cmd;
break;
}
DataSet ds = new DataSet(); //创建数据集
sda.Fill(ds, tabName); //填充数据集
return ds; //返回数据集
}
在上述代码中,还需要通过一个枚举类型进行switch操作,枚举类型用于判断执行的操作,示例代码如下所示。
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; //配置Command类型
foreach (SqlParameter para in paraList)
{ cmd.Parameters.Add(para); } //添加参数
}
con.Open(); //打开连接
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(); //创建Command对象
cmd.Connection = con; //使用连接
cmd.CommandText = sqlcmd; //配置执行类型
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 = "mytable"; //配置数据库
private static readonly string uid = "sa"; //配置用户名
private static readonly string pwd ="sa"; //配置用户会密码
private static readonly string server = "local"; //配置服务器的值
上述代码为SQLHelper类配置了属性,当使用SQLHelper类时,系统会自动连接数据库,在完成使用后,系统会自动关闭数据库。如果需要在当前项目使用SQLHelper类,则需要添加引用来使用SQLHelper类,右击现有项目,在下拉菜单中选择【添加】选项,在【添加】选项中选择【现有项】选项,在弹出窗口中选择【项目】标签栏,就可以添加相同项目的类库
引用添加完毕,在使用SQLHelper页面的CS页面中,需要添加命名空间,命名空间的名称和创建类库的名称相同,如果需要更改名称,可以通过修改类库的属性来修改。示例代码如下所示。
using MYSQL;
引用完毕后,就可以执行SQL语句,使用SQLHelper执行SQL语句非常方便,下面代码演示了如何执行插入、删除操作。
string strsql = "insert into mynews values ('SQLHelper插入标题')"; //编写SQL语句
SQLHelper.ExecNonQuery(strsql); //执行SQL语句
上述代码运行后,则会执行插入操作,相比于ADO.NET,封装后的代码更加简便易懂,删除操作代码如下所示。
string strsql2 = "delete form mynews where id=3"; //编写SQL语句
SQLHelper.ExecNonQuery(strsql2); //执行SQL语句
当需要执行SELECT语句时,可以通过SQLHelper.DataAdapter获取数据,示例代码如下所示。
string strsql = "select * from mynews where id=3"; //编写SQL语句
DataSet ds = SQLHelper.DataAdapter(strsql, SQLHelper.SDACmd.select, "mydatatable");
上述代码通过SQLHelper.DataAdapter获取数据,并创建了一个mydatatable虚拟表,填充DataSet对象。当需要获取DataSet对象中的数据时,和普通的DataSet对象一样。SQLHelper封装了ADO.NET中的许多方法,为开发人员提高了效率,同时也增加了安全性和模块化的特性。
注意:上述代码中的SQLHelper类能够执行的是SQL语句,如果需要执行存储过程,则需要更改SQLHelper类中的相应的CommandType属性的值。
posted on 2011-01-19 15:08 nicStudio 阅读(3601) 评论(0) 编辑 收藏 举报