无聊的周末,进修、编码无力。想找点事干但又不知道干点什么,蓦地发明本身学过的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类的运用详解的细致内容,更多请关注ki4网别的相干文章!