[转]自用类库整理之SqlHelper和MySqlHelper
生活随笔
收集整理的這篇文章主要介紹了
[转]自用类库整理之SqlHelper和MySqlHelper
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文轉自:http://www.cnblogs.com/lzrabbit/p/3287155.html
自用的SQLHelper和MySqlHelper,除一些通用方法外,封裝了一些很實用的批量操作方法,簡單介紹下
SqlHelper
- ExecuteEmptyDataTable 獲取空表結構,主要用于需要構造DataTable進行大批量數據插入時使用
- BulkInsert 大批量數據插入,使用SqlBulkCopy進行大批量數據導入,僅提供了DataTable方式,需要DataReader的請自行重載
- BatchUpdate 批量數據更新、插入,使用SqlDataAdapter實現,需要進行較大數據量更新、插入時可以使用此方法,性能還不錯
- BatchUpdate,BatchDelete 分批次批量刪除、更新數據,此方法應用場景較少,用于需要刪除、更新大量數據的同時不造成數據庫阻塞且不影響數據庫訂閱、復制延時等
- ExecutePageDataTable 通用的分頁方法,提供了CTE表達式的支持
- SqlHelperExtension.cs(ExecuteObject、ExecuteObjects) 提供了泛型獲取對象方法支持,依賴依賴AutoMapper.dll實現,非常在意性能的慎用
- SqlHelperSchemaExtension.cs SqlServer獲取數據庫、表、索引信息的封裝,可以用來輔助寫自己的代碼生成器,查看數據庫索引之類的
MySqlHelper
- ExecuteEmptyDataTable 獲取空表結構,主要用于需要構造DataTable進行大批量數據插入時使用
- BulkInsert 使用MySqlBulkLoader進行大批量數據導入,僅提供了DataTable方式,需要DataReader的請自行重載
- BatchUpdate 批量數據更新、插入,使用MySqlDataAdapter實現,需要進行較大數據量更新、插入時可以使用此方法,性能還不錯
- MySqlHelperExtension.csExecuteObject、ExecuteObjects 提供了泛型獲取對象方法支持,依賴依賴AutoMapper.dll實現,非常在意性能的慎用
?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Data; using System.Text.RegularExpressions; namespace Helpers { /// <summary> /// SqlHelper操作類 /// </summary> public sealed partial class SqlHelper { /// <summary> /// 批量操作每批次記錄數 /// </summary> public static int BatchSize = 2000; /// <summary> /// 超時時間 /// </summary> public static int CommandTimeOut = 600; /// <summary> ///初始化SqlHelper實例 /// </summary> /// <param name="connectionString">數據庫連接字符串</param> public SqlHelper(string connectionString) { this.ConnectionString = connectionString; } /// <summary> /// 數據庫連接字符串 /// </summary> public string ConnectionString { get; set; } #region 實例方法 #region ExecuteNonQuery /// <summary> /// 執行SQL語句,返回影響的行數 /// </summary> /// <param name="commandText">SQL語句</param> /// <param name="parms">查詢參數</param> /// <returns>返回影響的行數</returns> public int ExecuteNonQuery(string commandText, params SqlParameter[] parms) { return ExecuteNonQuery(ConnectionString, CommandType.Text, commandText, parms); } /// <summary> /// 執行SQL語句,返回影響的行數 /// </summary> /// <param name="commandType">命令類型(存儲過程,命令文本, 其它.)</param> /// <param name="commandText">SQL語句或存儲過程名稱</param> /// <param name="parms">查詢參數</param> /// <returns>返回影響的行數</returns> public int ExecuteNonQuery(CommandType commandType, string commandText, params SqlParameter[] parms) { return ExecuteNonQuery(ConnectionString, commandType, commandText, parms); } #endregion ExecuteNonQuery #region ExecuteScalar /// <summary> /// 執行SQL語句,返回結果集中的第一行第一列 /// </summary> /// <typeparam name="T">返回對象類型</typeparam> /// <param name="commandText">SQL語句</param> /// <param name="parms">查詢參數</param> /// <returns>返回結果集中的第一行第一列</returns> public T ExecuteScalar<T>(string commandText, params SqlParameter[] parms) { return ExecuteScalar<T>(ConnectionString, commandText, parms); } /// <summary> /// 執行SQL語句,返回結果集中的第一行第一列 /// </summary> /// <param name="commandText">SQL語句</param> /// <param name="parms">查詢參數</param> /// <returns>返回結果集中的第一行第一列</returns> public object ExecuteScalar(string commandText, params SqlParameter[] parms) { return ExecuteScalar(ConnectionString, CommandType.Text, commandText, parms); } /// <summary> /// 執行SQL語句,返回結果集中的第一行第一列 /// </summary> /// <param name="commandType">命令類型(存儲過程,命令文本, 其它.)</param> /// <param name="commandText">SQL語句或存儲過程名稱</param> /// <param name="parms">查詢參數</param> /// <returns>返回結果集中的第一行第一列</returns> public object ExecuteScalar(CommandType commandType, string commandText, params SqlParameter[] parms) { return ExecuteScalar(ConnectionString, commandType, commandText, parms); } #endregion ExecuteScalar #region ExecuteDataReader /// <summary> /// 執行SQL語句,返回只讀數據集 /// </summary> /// <param name="commandText">SQL語句</param> /// <param name="parms">查詢參數</param> /// <returns>返回只讀數據集</returns> private SqlDataReader ExecuteDataReader(string commandText, params SqlParameter[] parms) { return ExecuteDataReader(ConnectionString, CommandType.Text, commandText, parms); } /// <summary>總結
以上是生活随笔為你收集整理的[转]自用类库整理之SqlHelper和MySqlHelper的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xcode7 没有Empty Appli
- 下一篇: 代码天敌之体积