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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

KeeSoft.DBHelper.DBFactory 数据库访问类

發(fā)布時間:2025/4/16 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KeeSoft.DBHelper.DBFactory 数据库访问类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

/*----------------------------------------------------------------Copyright (C) 2016 KeeSoft文件名:DBFactory.cs文件功能描述:數(shù)據(jù)庫操作基礎(chǔ)類創(chuàng)建標(biāo)識:KeeSoft - 20161012 ----------------------------------------------------------------*/using System; using System.Collections; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient;namespace KeeSoft.DBHelper {/// <summary>/// 數(shù)據(jù)庫基本操作工廠/// </summary>public class DBFactory{//全局連接代碼private static string GlobalConnection = "Server=.;Initial Catalog={0};User ID=sa;Password=123";//哈希表存儲緩存參數(shù)private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());/// <summary>/// 通過SQL命令進行數(shù)據(jù)庫操作/// </summary>/// <param name="_dataname">數(shù)據(jù)庫名</param>/// <param name="commandType">命令類型</param>/// <param name="commandText">命令語句</param>/// <param name="commandParameters">參數(shù)化查詢時,參數(shù)數(shù)組</param>/// <returns>返回受影響的行數(shù)</returns>public static int ExecuteNonQuery(string _dataname, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();using (SqlConnection conn = new SqlConnection(string.Format(GlobalConnection,_dataname))){PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();return val;}}/// <summary>/// 通過SQL讀取命令 游標(biāo)讀取數(shù)據(jù)/// </summary>/// <param name="_dataname">數(shù)據(jù)庫名</param>/// <param name="commandType">命令類型</param>/// <param name="commandText">命令語句</param>/// <param name="commandParameters">參數(shù)化查詢時,參數(shù)數(shù)組</param>/// <returns>返回一個 SqlDataReader類</returns>public static SqlDataReader ExecuteReader(string _dataname, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();SqlConnection conn = new SqlConnection(string.Format(GlobalConnection, _dataname));try{PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);cmd.Parameters.Clear();return rdr;}catch{conn.Close();throw;}}/// <summary>/// 通過SQL讀取命令 數(shù)據(jù)存入DataSet/// </summary>/// <param name="_dataname">數(shù)據(jù)庫名</param>/// <param name="commandType">命令類型</param>/// <param name="commandText">命令語句</param>/// <param name="commandParameters">參數(shù)化查詢時,參數(shù)數(shù)組</param>/// <returns>返回一個 SqlDataReader類</returns>public static DataSet GetDataSet(string _dataname, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();SqlConnection conn = new SqlConnection(string.Format(GlobalConnection, _dataname));PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);SqlDataAdapter doa = new SqlDataAdapter(cmd);DataSet ds = new DataSet();doa.Fill(ds);return ds;}/// <summary>/// 通過SQL讀取命令 數(shù)據(jù)存入DataSet/// </summary>/// <param name="_dataname">數(shù)據(jù)庫名</param>/// <param name="_sql">命令語句</param>/// <returns></returns>public static DataSet GetDataSet(string _dataname, string _sql){return GetDataSet(_dataname, CommandType.Text, _sql);}/// <summary>/// 通過SQL命令 返回第一行第一列的值/// </summary>/// <remarks>/// e.g.: /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));/// </remarks>/// <param name="connectionString">a valid connection string for a SqlConnection</param>/// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>/// <param name="commandText">the stored procedure name or T-SQL command</param>/// <param name="commandParameters">an array of SqlParamters used to execute the command</param>/// <returns>An object that should be converted to the expected type using Convert.To{Type}</returns>public static object ExecuteScalar(string _dataname, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();using (SqlConnection connection = new SqlConnection(string.Format(GlobalConnection, _dataname))){PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);object val = cmd.ExecuteScalar();cmd.Parameters.Clear();return val;}}/// <summary>/// add parameter array to the cache/// </summary>/// <param name="cacheKey">Key to the parameter cache</param>/// <param name="cmdParms">an array of SqlParamters to be cached</param>public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters){parmCache[cacheKey] = commandParameters;}/// <summary>/// Retrieve cached parameters/// </summary>/// <param name="cacheKey">key used to lookup parameters</param>/// <returns>Cached SqlParamters array</returns>public static SqlParameter[] GetCachedParameters(string cacheKey){SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];if (cachedParms == null)return null;SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];for (int i = 0, j = cachedParms.Length; i < j; i++)clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();return clonedParms;}/// <summary>/// Prepare a command for execution/// </summary>/// <param name="cmd">SqlCommand object</param>/// <param name="conn">SqlConnection object</param>/// <param name="trans">SqlTransaction object</param>/// <param name="cmdType">Cmd type e.g. stored procedure or text</param>/// <param name="cmdText">Command text, e.g. Select * from Products</param>/// <param name="cmdParms">SqlParameters to use in the command</param>private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms){if (conn.State != ConnectionState.Open)conn.Open();cmd.Connection = conn;cmd.CommandText = cmdText;if (trans != null)cmd.Transaction = trans;cmd.CommandType = cmdType;if (cmdParms != null){foreach (SqlParameter parm in cmdParms)cmd.Parameters.Add(parm);}}} }

?

轉(zhuǎn)載于:https://my.oschina.net/kee1986/blog/791887

總結(jié)

以上是生活随笔為你收集整理的KeeSoft.DBHelper.DBFactory 数据库访问类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成 人 a v天堂 | 日本a级一区 | 成人免费视频一区 | 中文字幕免费高清在线观看 | 亚洲欧美日韩成人 | 成人午夜福利一区二区 | 在线中文字幕日韩 | 麻豆高清免费国产一区 | 九九综合九九 | 成人黄色在线免费观看 | 奇米超碰在线 | 熟妇人妻中文字幕无码老熟妇 | 国产网站免费观看 | 国产成人啪精品 | 日本在线一区二区三区 | 亚洲欧美a | 99热这里只有精品5 国产精品伦子伦免费视频 精品一二三 | 日本熟妇浓毛 | 性少妇mdms丰满hdfilm | 日韩中文字幕在线观看 | 国产亚洲精品精品国产亚洲综合 | 欧美无吗 | 天天爽天天 | 亚洲欧美日韩精品在线 | 日韩欧美成人精品 | 91秦先生在线播放 | 国产欧美日韩 | 色婷婷国产精品综合在线观看 | 国产精品久久久久久 | 色干干| 日本三级吹潮 | 天天干天天操天天拍 | 久久精品无码专区免费 | 国产日韩精品一区二区三区在线 | 午夜电影一区 | 欧美成人一二三区 | 欧美成人精品一区 | 欧美一本| 日韩精品一区二区在线 | 欧美天堂一区 | 在线免费观看视频你懂的 | av毛片在线看 | 欧美性生交xxxxx久久久缅北 | 少妇被黑人到高潮喷出白浆 | 日韩欧美黄色大片 | 一级片免费视频 | 日本人妖在线 | 国产专区一区二区三区 | 亚洲午夜在线播放 | 人人爱操 | 亚洲欧洲久久久 | 久久久久久久九九九九 | 精品一区二区三区免费看 | 男人爽女人下面动态图 | av影院在线播放 | 日本免费一区二区三区四区 | 国产思思 | 麻豆精品在线 | 凹凸av在线| 五月婷婷综合激情 | 极品丰满少妇 | 99ri在线观看| 香蕉视频黄在线观看 | 最新欧美大片 | 欧美视频一二三 | 免费一级欧美片在线播放 | 色哟哟在线 | 亚洲品质自拍视频 | 激情图片在线视频 | 久久性精品| 亚洲乱强伦 | 精品人妻互换一区二区三区 | 欧洲视频一区二区三区 | 67194av| 国产中文字幕在线视频 | 黄色一级视频免费看 | 天天看天天干 | 壮汉被书生c到合不拢腿 | 香蕉国产在线视频 | 伊人99re | 亚洲一级在线 | av男女| 日韩区欧美区 | 波多野结衣久久久久 | 久久久久久久精 | 国产精品第一页在线观看 | 潘金莲裸体一级淫片视频 | 欧美一级高潮片 | 日韩美女免费视频 | 久草免费在线观看 | 香蕉中文网 | 欧美成人aaa片一区国产精品 | 老头老夫妇自拍性tv | 国产激情福利 | 在线精品视频一区 | av永久免费| 久久久久久久久久一区 | 国产中文字幕一区二区 | wwwww国产 |