温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#编写SqlHelper类的使用方法

发布时间:2021-03-06 13:43:03 来源:亿速云 阅读:223 作者:小新 栏目:编程语言

这篇文章主要介绍C#编写SqlHelper类的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

这里以控制台程序为案例。首先我们需要先配置一下连接字符串,我们需要在app.config文件中增加如下节点:

<connectionStrings>    <add name="Sql" connectionString="server=数据库地址;uid=用户名;pwd=密码;database=数据库名"/>   </connectionStrings>

1.接着需要创建一个名为SqlHepler类,然后创建一个方法来获取app.config文件中配置的连接字符串。

public static string GetSqlConnectionString()  {    return ConfigurationManager.      ConnectionStrings["Sql"].ConnectionString;  }

2.下面来封装第一个SqlHepler方法,封装一个执行的sql 返回受影响的行数。

 public static int ExecuteNonQuery(string sqlText,params SqlParameter[] parameters) {    using (SqlConnection conn = new SqlConnection(GetSqlConnectionString()))      {      using (SqlCommand cmd=conn.CreateCommand())      {        conn.Open();  //打开数据库        cmd.CommandText = sqlText;  //对CommandText进行赋值        cmd.Parameters.AddRange(parameters);  //对数据库使用参数进行赋值        return cmd.ExecuteNonQuery();      }    } }

参数说明:sqlText:需要执行的sql脚本,parameters:需要的参数集合

该方法主要是用于执行,删除、更新和插入操作,返回受影响的行数。

3.继续封装一个查询操作,返回查询结果中的第一行第一列的值

public static object ExecuteScalar(string sqlText, params SqlParameter[] parameters)  {   using (SqlConnection conn=new SqlConnection(GetSqlConnectionString()))   {    using (SqlCommand cmd=conn.CreateCommand())    {      conn.Open();      cmd.CommandText = sqlText;      cmd.Parameters.AddRange(parameters);      return cmd.ExecuteScalar();    }   } }

参数说明:如上。

该方法的返回值第object,所以当我们查询的数据不知道是什么类型的时候可以使用该类。

4.在封装个常用的查询方法,返回一个DataTable

public static DataTable ExecuteDataTable(string sqlText, params SqlParameter[] parameters)   {   using (SqlDataAdapter adapter =new SqlDataAdapter(sqlText,GetSqlConnectionString()))   {     DataTable dt = new DataTable();     adapter.SelectCommand.Parameters.AddRange(parameters);     adapter.Fill(dt);     return dt;    } }

参数说明:如上。

该方法主要用于一些查询数据,dt将被填充查询出来的数据,然后返回数据。

5.最后在写封装一个查询方法,该方法返回的是一个SqlDataReader类型

public static SqlDataReader ExecuteReader(string sqlText, params SqlParameter[] parameters) {    //SqlDataReader要求,它读取数据的时候有,它独占它的SqlConnection对象,而且SqlConnection必须是Open状态    SqlConnection conn = new SqlConnection(GetSqlConnectionString());//不要释放连接,因为后面还需要连接打开状态    SqlCommand cmd = conn.CreateCommand();    conn.Open();    cmd.CommandText = sqlText;    cmd.Parameters.AddRange(parameters);    //CommandBehavior.CloseConnection当SqlDataReader释放的时候,顺便把SqlConnection对象也释放掉    return cmd.ExecuteReader(CommandBehavior.CloseConnection);  }

参数说明:依旧如上。

该方法返回的SqlDataReader 类型对象需要一直使用SqlConnection对象,所以不能释放。该类型读取数据是一行一行的读取。读取使用的是该类的Read()方法,返回值为bool判断数据是否为空(也就是是否读取到最后一行),该方法将自动读取下到下一条记录。

作为一个初学者,本次只是简单的介绍,并复习了一下SqlHepler类。

附上全部代码:

using System.Configuration; using System.Data; using System.Data.SqlClient; namespace UserInfoMgr {   class SqlHelper   {     /// <summary>     /// 获取连接字符串     /// </summary>     /// <returns>连接字符串</returns>     public static string GetSqlConnectionString()     {       return ConfigurationManager.ConnectionStrings["Sql"].ConnectionString;     }     /// <summary>     /// 封装一个执行的sql 返回受影响的行数     /// </summary>     /// <param name="sqlText">执行的sql脚本</param>     /// <param name="parameters">参数集合</param>     /// <returns>受影响的行数</returns>     public static int ExecuteNonQuery(string sqlText,params SqlParameter[] parameters)     {       using (SqlConnection conn = new SqlConnection(GetSqlConnectionString()))       {         using (SqlCommand cmd=conn.CreateCommand())         {           conn.Open();           cmd.CommandText = sqlText;           cmd.Parameters.AddRange(parameters);           return cmd.ExecuteNonQuery();         }       }     }     /// <summary>     /// 执行sql,返回查询结果中的第一行第一列的值     /// </summary>     /// <param name="sqlText">执行的sql脚本</param>     /// <param name="parameters">参数集合</param>     /// <returns>查询结果中的第一行第一列的值</returns>     public static object ExecuteScalar(string sqlText, params SqlParameter[] parameters)     {       using (SqlConnection conn=new SqlConnection(GetSqlConnectionString()))       {         using (SqlCommand cmd=conn.CreateCommand())         {           conn.Open();           cmd.CommandText = sqlText;           cmd.Parameters.AddRange(parameters);           return cmd.ExecuteScalar();         }       }     }     /// <summary>     /// 执行sql 返回一个DataTable     /// </summary>     /// <param name="sqlText">执行的sql脚本</param>     /// <param name="parameters">参数集合</param>     /// <returns>返回一个DataTable</returns>     public static DataTable ExecuteDataTable(string sqlText, params SqlParameter[] parameters)      {       using (SqlDataAdapter adapter =new SqlDataAdapter(sqlText,GetSqlConnectionString()))       {         DataTable dt = new DataTable();         adapter.SelectCommand.Parameters.AddRange(parameters);         adapter.Fill(dt);         return dt;       }     }     /// <summary>     /// 执行sql脚本     /// </summary>     /// <param name="sqlText">执行的sql脚本</param>     /// <param name="parameters">参数集合</param>     /// <returns>返回一个SqlDataReader</returns>     public static SqlDataReader ExecuteReader(string sqlText, params SqlParameter[] parameters)     {       //SqlDataReader要求,它读取数据的时候有,它独占它的SqlConnection对象,而且SqlConnection必须是Open状态       SqlConnection conn = new SqlConnection(GetSqlConnectionString());//不要释放连接,因为后面还需要连接打开状态       SqlCommand cmd = conn.CreateCommand();       conn.Open();       cmd.CommandText = sqlText;       cmd.Parameters.AddRange(parameters);       //CommandBehavior.CloseConnection当SqlDataReader释放的时候,顺便把SqlConnection对象也释放掉       return cmd.ExecuteReader(CommandBehavior.CloseConnection);      }   } }

以上是“C#编写SqlHelper类的使用方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI