ADO.NET封装的SqlHelper
生活随笔
收集整理的這篇文章主要介紹了
ADO.NET封装的SqlHelper
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參照別人的方法,順便再次復習下ADO.NET的相關知識。為自己的類庫做準備。
namespace Common.SqlHelper {/// <summary>/// ADO.NET-------底層的數據操作/// </summary>public class SqlHelper{/// <summary>/// 通過構造函數來實例化連接字符串/// </summary>/// <param name="connectionString"></param>public SqlHelper(string connectionString){this.connectionString = connectionString;}private string connectionString;/// <summary>/// 設置DB訪問字符串/// </summary>public string ConnectionSrting{set { connectionString = value; }}#region 執行一個查詢,返回查詢的結果集+ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters)public DataTable ExecuteDataTable(string sql){return ExecuteDataTable(sql, CommandType.Text, null);}public DataTable ExecuteDataTable(string sql, CommandType commandType){return ExecuteDataTable(sql, commandType, null);}/// <summary>/// 執行一個查詢,返回查詢的結果集。/// </summary>/// <param name="sql"></param>/// <param name="commandtype"></param>/// <param name="parameters"></param>/// <returns></returns>public DataTable ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters){DataTable data = new DataTable(); //實例化datatable,用于裝載查詢的結果集using (SqlConnection conn = new SqlConnection(connectionString)){using (SqlCommand cmd = new SqlCommand(sql, conn)){cmd.CommandType = commandtype;if (parameters != null){foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter); //將參數添加到sql語句中。}}//申明sqldataadapter,通過cmd來實例化它,這個是數據設備器,可以直接往datatable,dataset中寫入。SqlDataAdapter adapter = new SqlDataAdapter(cmd);adapter.Fill(data); //利用Fill來填充。}}return data;}#endregion#region 返回一個SqlDataReader對象。public SqlDataReader ExecuteReader(string sql){return ExecuteReader(sql, CommandType.Text, null);}public SqlDataReader ExecuteReader(string sql, CommandType commandType){return ExecuteReader(sql, commandType, null);}/// <summary>/// 返回一個SqlDataReader,從 SQL Server 數據庫讀取行的只進流的方式/// </summary>/// <returns></returns>public SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters){SqlConnection conn = new SqlConnection(connectionString);SqlCommand cmd = new SqlCommand(sql, conn);if (parameters != null){foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);}}conn.Open();//CommandBehavior.CloseConnection+關閉reader對象關閉與其連接的Connection對象。return cmd.ExecuteReader(CommandBehavior.CloseConnection);}#endregion#region 執行一個查詢,返回結果集的首行首列。忽略其他行,其他列/// <summary>/// 只執行sql語句/// </summary>/// <param name="sql"></param>/// <returns></returns>public object ExecuteScalar(string sql){return ExecuteScalar(sql, CommandType.Text, null);}/// <summary>/// 可以執行存儲過程/// </summary>/// <param name="sql"></param>/// <param name="commandType"></param>/// <returns></returns>public object ExecuteScalar(string sql, CommandType commandType){return ExecuteScalar(sql, commandType, null);}/// <summary>/// 執行一個查詢,返回結果集的首行首列/// </summary>/// <param name="sql"></param>/// <param name="commandType"></param>/// <param name="parameters"></param>/// <returns></returns>public object ExecuteScalar(string sql, CommandType commandType, SqlParameter[] parameters){SqlConnection conn = new SqlConnection(connectionString);SqlCommand cmd = new SqlCommand(sql, conn);cmd.CommandType = commandType;if (parameters != null){foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);}}conn.Open();//cmd.ExecuteScalar()+執行查詢,并返回查詢所返回的結果集中第一行的第一列。 忽略其他列或行。object result = cmd.ExecuteScalar();conn.Close();return result;}#endregion#region 進行CRUD操作public int ExecuteNonQuery(string sql){return ExecuteNonQuery(sql,CommandType.Text,null);}public int ExecuteNonQuery(string sql,CommandType commandType){return ExecuteNonQuery(sql, commandType, null);}/// <summary>/// 對數據庫進行增刪改的操作/// </summary>/// <param name="sql">執行的Sql語句</param>/// <param name="commandType">要執行的查詢語句類型,如存儲過程或者sql文本命令</param>/// <param name="parameters">Transact-SQL語句或者存儲過程的參數數組</param>/// <returns></returns>public int ExecuteNonQuery(string sql,CommandType commandType,SqlParameter[]parameters){SqlConnection conn=new SqlConnection(connectionString);SqlCommand cmd=new SqlCommand(sql,conn);cmd.CommandType = commandType;if (parameters!=null){foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(cmd);}}conn.Open();int count = cmd.ExecuteNonQuery();conn.Close();return count;}#endregion#region 返回當前連接的數據庫中所有用戶創建的數據庫/// <summary>/// 返回當前連接的數據庫中所有用戶創建的數據庫/// </summary> /// <param name="tableName">表名</param>/// <returns></returns>public DataTable GetTable(string tableName){DataTable table = new DataTable();using (SqlConnection conn = new SqlConnection(connectionString)){conn.Open();table = conn.GetSchema(tableName);}return table;} #endregion} }轉載于:https://www.cnblogs.com/netxiaohui/p/5576167.html
總結
以上是生活随笔為你收集整理的ADO.NET封装的SqlHelper的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 闽江学院2015-2016学年下学期《软
- 下一篇: 《训练指南》——6.10