----------------------
Windows Phone 7手机开发、
ASP.Net培训、期待与您交流! ----------------------
我们经常通过ADO.NET操作数据库的时候,特别是三层架构DAL层里面必须得加入SqlHelper这个类。我本机电脑上的数据库为SQLExpress版本,至于到时候具体什么版本到时候修改一下就可以,以下以建立这个类的步骤:
1)添加配置文件,并在<configuration>下添加节点:
<connectionStrings>
<add name="conStr" connectionString="server=.\SQLExpress;database=Net228;Integrated Security=true;"/>
</connectionStrings>
2)
2.1导入System.Configuration 引用
2.2添加命名空间 System.Configuration;
3)SqlHelper.cs代码如下:
class SqlHelper
{
private static string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
/// <summary>
/// 增删改
/// </summary>
/// <param name="sqlStr">查询语句</param>
/// <param name="paras">参数数组</param>
/// <returns>返回受影响行数</returns>
public static int ExecuteNoQuery(string sqlStr, params SqlParameter[] paras)
{
using (SqlConnection conn = new SqlConnection(conStr))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sqlStr, conn))
{
cmd.Parameters.AddRange(paras);
return cmd.ExecuteNonQuery();
}
}
}
/// <summary>
/// 返回第一行第一列数据
/// </summary>
/// <param name="sqlStr">查询语句</param>
/// <param name="paras">参数数组</param>
/// <returns>返回查询结果的第一行第一列数据</returns>
public static object ExecuteScalar(string sqlStr, params SqlParameter[] paras)
{
using (SqlConnection conn = new SqlConnection(conStr))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sqlStr, conn))
{
cmd.Parameters.AddRange(paras);
return cmd.ExecuteScalar();
}
}
}
/// <summary>
/// 获取数据表
/// </summary>
/// <param name="sqlStr">查询语句</param>
/// <param name="paras">参数数组</param>
/// <returns>结果集</returns>
public static DataTable GetDataTable(string sqlStr, params SqlParameter[] paras)
{
using (SqlConnection conn = new SqlConnection(conStr))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sqlStr, conn))
{
cmd.Parameters.AddRange(paras);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
}
}
}
接下来假设要删除数据库中表Book中的Id号为5的数据,可以如下调用SqlHelper.cs的ExecuteNoQuery方法:
string sqlStr = "delete from Person where Id=@id";
SqlParameter sp = new SqlParameter("@id", id);
sp.Value = 3;
int res = SqlHelper.ExecuteNoQuery(sqlStr, sp);
if (res > 0)
{
Console.WriteLine("删除成功!");
}