日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]自用类库整理之SqlHelper和MySqlHelper

發布時間:2025/1/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]自用类库整理之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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。