日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91麻豆蜜桃一区二区三区 | 天天摸天天操天天射 | 日本一二三区不卡 | 好屌妞视频这里只有精品 | 精品国产亚洲av麻豆 | 51久久久 | 中文在线日本 | 国产一卡二卡在线播放 | 亚洲精品久久久久久久久久吃药 | 大尺度舌吻呻吟声 | 蜜臀av色欲a片无码精品一区 | 精品一区二区三区无码视频 | 三级在线观看 | 黄色片不卡| 海角社区在线视频播放观看 | 免费成人黄色网址 | 超碰免费在线97 | www.精品视频 | 丰满大乳少妇在线观看网站 | 欧美骚少妇 | 色九九视频 | 国内精品久久久久久久久久久 | 久久国产精品毛片 | 精品国产aⅴ一区二区三区四川人 | 偷拍精品一区二区三区 | 国产精品久久久久久久蜜臀 | 玖玖视频国产 | 伦乱天堂| 波多野42部无码喷潮 | 99色在线视频 | 天堂一区在线 | 高清视频一区二区三区 | av网站大全在线观看 | 香港三级日本三级三69 | 国产精美视频 | 一本久道久久综合 | 久久久精品美女 | 少妇在线观看 | 女~淫辱の触手3d动漫 | 性色欲情网站iwww九文堂 | 在线操| 午夜免费在线观看 | 伊人久久成人网 | 成人性生活免费看 | 午夜视频在线观看视频 | 日日夜夜综合网 | 亚洲精品456 | 97影音| 国产精品成人免费 | 成人在线国产精品 | 操欧洲美女 | 久久久久人妻一区 | 免费性爱视频 | 亚洲天堂一区在线 | 97在线观视频免费观看 | 网红日批视频 | 亚洲av最新在线网址 | 亚洲一二三区av | 风韵少妇spa私密视频 | 欧美成人精品一区二区男人看 | 国产精选视频在线观看 | 国产午夜无码精品免费看奶水 | 男女做激情爱呻吟口述全过程 | 亚洲天堂麻豆 | www.-级毛片线天内射视视 | 国产精品99久久久久久宅男 | 国产在线观看黄 | av特黄| 西方av在线 | 男人操女人下面视频 | 麻豆视频网站入口 | 欧美成人黑人xx视频免费观看 | 偷拍精品一区二区三区 | 草免费视频| 日本黄色短片 | 婷婷色在线播放 | 少妇脱了内裤让我添 | 欧美福利网址 | 中文字幕欧美另类精品亚洲 | 国产人伦精品一区二区三区 | 哺乳喂奶一二三区乳 | 成人黄色在线观看 | 97视频一区 | 性v天堂 | 中文字幕高清 | 麻豆视频在线播放 | 欧美不卡在线 | 精品国产鲁一鲁一区二区张丽 | 免费黄色网址在线观看 | 国内一区二区三区 | 中国av片| 国产美女明星三级做爰 | 欧美午夜一区 | www.中文字幕在线观看 | 人妻无码中文久久久久专区 | av射进来| 欧美精品一区二区久久婷婷 | 国产精品美女在线观看 | 欧美少妇喷水 |