C#操作数据库底层封装代码_第1页
C#操作数据库底层封装代码_第2页
C#操作数据库底层封装代码_第3页
C#操作数据库底层封装代码_第4页
C#操作数据库底层封装代码_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/ <summary> / SqlHelper类提供很高的数据访问性能 / 使用SqlClient类的通/ <summary> / SqlHelper类提供很高的数据访问性能, / 使用SqlClient类的通用定义. / </summary> public abstract class SQLHelper /存贮Cache缓存的Hashtable集合 private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable(); / <summary> / 在缓存中添加参

2、数数组 / </summary> / <param name="cacheKey">参数的Key</param> / <param name="cmdParms">参数数组</param> public static void CacheParameters(string cacheKey, params SqlParameter commandParameters) parmCachecacheKey = commandParameters; / <summary> / 提取缓存的

3、参数数组 / </summary> / <param name="cacheKey">查找缓存的key</param> / <returns>返回被缓存的参数数组</returns> public static SqlParameter GetCachedParameters(string cacheKey) SqlParameter cachedParms = (SqlParameter)parmCachecacheKey; if (cachedParms = null) return null; SqlPara

4、meter clonedParms = new SqlParametercachedParms.Length; for (int i = 0, j = cachedParms.Length; i < j; i+) clonedParmsi = (SqlParameter)(ICloneable)cachedParmsi).Clone(); return clonedParms; / <summary> / 提供一个SqlCommand对象的设置 / </summary> / <param name="cmd">SqlCommand对

5、象</param> / <param name="conn">SqlConnection 对象</param> / <param name="trans">SqlTransaction 对象</param> / <param name="cmdType">CommandType 如存贮过程,T-SQL</param> / <param name="cmdText">存贮过程名或查询串</param> / &l

6、t;param name="cmdParms">命令中用到的参数集</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.Comman

7、dText = cmdText; if (trans != null) cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null) foreach (SqlParameter parm in cmdParms) cmd.Parameters.Add(parm); / <summary> / 使用连接字符串,执行一个SqlCommand命令(没有记录返回) / 使用提供的参数集. / </summary> / <remarks> / int result = Execute

8、NonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24); / </remarks> / <param name="connectionString">一个有效的SqlConnection连接串</param> / <param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> /

9、<returns>受此命令影响的行数</returns> public static int ExecuteNonQuery(string connectionString, string SQLString) SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString) PrepareCommand(cmd, conn, null, CommandType.Text, SQLString, null); int val = cmd.E

10、xecuteNonQuery(); cmd.Parameters.Clear(); return val; / <summary> / 使用连接字符串,执行一个SqlCommand命令(没有记录返回) / 使用提供的参数集. / </summary> / <remarks> / int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24); / &

11、lt;/remarks> / <param name="connectionString">一个有效的SqlConnection连接串</param> / <param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> / <param name="commandParameters">执行命令的参数集</param> / <returns>受此命令影响的行数</returns> public s

12、tatic int ExecuteNonQuery(string connectionString, string SQLString, params SqlParameter commandParameters) SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString) PrepareCommand(cmd, conn, null, CommandType.Text, SQLString, commandParameters); int val = cm

13、d.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; / <summary> / 使用连接字符串,执行一个SqlCommand命令(没有记录返回) / 使用提供的参数集. / </summary> / <remarks> / int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24);

14、/ </remarks> / <param name="connectionString">一个有效的SqlConnection连接串</param> / <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param> / <param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> / <param name=

15、"commandParameters">执行命令的参数集</param> / <returns>受此命令影响的行数</returns> public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string SQLString, params SqlParameter commandParameters) SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = n

16、ew SqlConnection(connectionString) PrepareCommand(cmd, conn, null, cmdType, SQLString, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; / <summary> / 在一个存在的连接上执行数据库的命令操作 / 使用提供的参数集. / </summary> / <remarks> / int result = ExecuteNonQuery(conn

17、ection, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24); / </remarks> / <param name="conn">一个存在的数据库连接对象</param> / <param name="commandType">命令类型CommandType (stored procedure, text, etc.)</param> / <

18、param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> / <param name="commandParameters">执行命令的参数集</param> / <returns>受此命令影响的行数</returns> public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string SQLString, params SqlParame

19、ter commandParameters) SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, connection, null, cmdType, SQLString, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; / <summary> / 在一个连接串上执行一个命令,返回表中第一行,第一列的值 / 使用提供的参数. / </summary> / <remarks>

20、 / Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24); / </remarks> / <param name="connectionString">一个有效的SqlConnection连接串</param> / <param name="SQLString">存贮过程名称或是一个T-SQ

21、L语句串</param> / <returns>返回的对象,在使用时记得类型转换</returns> public static object ExecuteScalar(string connectionString, string SQLString) SqlCommand cmd = new SqlCommand(); using (SqlConnection connection = new SqlConnection(connectionString) PrepareCommand(cmd, connection, null, CommandTyp

22、e.Text, SQLString, null); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; / <summary> / 在一个连接串上执行一个命令,返回表中第一行,第一列的值 / 使用提供的参数. / </summary> / <remarks> / Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlPara

23、meter("prodid", 24); / </remarks> / <param name="connectionString">一个有效的SqlConnection连接串</param> / <param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> / <param name="commandParameters">执行命令的参数集</param> / <returns>

24、返回的对象,在使用时记得类型转换</returns> public static object ExecuteScalar(string connectionString, string SQLString, params SqlParameter commandParameters) SqlCommand cmd = new SqlCommand(); using (SqlConnection connection = new SqlConnection(connectionString) PrepareCommand(cmd, connection, null, Command

25、Type.Text, SQLString, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; / <summary> / 在一个连接串上执行一个命令,返回表中第一行,第一列的值 / 使用提供的参数. / </summary> / <remarks> / Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders&qu

26、ot;, new SqlParameter("prodid", 24); / </remarks> / <param name="connectionString">一个有效的SqlConnection连接串</param> / <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param> / <param name="SQLString">存贮过

27、程名称或是一个T-SQL语句串</param> / <param name="commandParameters">执行命令的参数集</param> / <returns>返回的对象,在使用时记得类型转换</returns> public static object ExecuteScalar(string connectionString, CommandType cmdType, string SQLString, params SqlParameter commandParameters) SqlComman

28、d cmd = new SqlCommand(); using (SqlConnection connection = new SqlConnection(connectionString) PrepareCommand(cmd, connection, null, cmdType, SQLString, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; / <summary> / 在一个连接上执行一个命令,返回表中第一行,第一列的值 / 使用提供的参数

29、. / </summary> / <remarks> / e.g.: / Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24); / </remarks> / <param name="connectionString">一个有效的SqlConnection连接</param> / <param

30、 name="commandType">命令类型CommandType(stored procedure, text, etc.)</param> / <param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> / <param name="commandParameters">执行命令的参数集</param> / <returns>返回的对象,在使用时记得类型转换</returns> public st

31、atic object ExecuteScalar(SqlConnection connection, CommandType cmdType, string SQLString, params SqlParameter commandParameters) SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, connection, null, cmdType, SQLString, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear();

32、 return val; / <summary> / 在一个事务的连接上执行数据库的命令操作 / 使用提供的参数集. / </summary> / <remarks> / int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24); / </remarks> / <param name="trans">一个存在的

33、事务</param> / <param name="commandType">命令类型CommandType (stored procedure, text, etc.)</param> / <param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> / <returns>受此命令影响的行数</returns> public static int ExecuteNonQuery(SqlTransaction trans, stri

34、ng SQLString) SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, trans.Connection, trans, CommandType.Text, SQLString, null); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; / <summary> / 在一个事务的连接上执行数据库的命令操作 / 使用提供的参数集. / </summary> / <remarks> / int result

35、 = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24); / </remarks> / <param name="trans">一个存在的事务</param> / <param name="commandType">命令类型CommandType (stored procedure, text, etc.)</pa

36、ram> / <param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> / <param name="commandParameters">执行命令的参数集</param> / <returns>受此命令影响的行数</returns> public static int ExecuteNonQuery(SqlTransaction trans, string SQLString, params SqlParameter command

37、Parameters) SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, trans.Connection, trans, CommandType.Text, SQLString, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; / <summary> / 在一个事务的连接上执行数据库的命令操作 / 使用提供的参数集. / </summary> / <remarks> /

38、 int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24); / </remarks> / <param name="trans">一个存在的事务</param> / <param name="commandType">命令类型CommandType (stored procedure, text, e

39、tc.)</param> / <param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> / <param name="commandParameters">执行命令的参数集</param> / <returns>受此命令影响的行数</returns> public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string SQLStr

40、ing, params SqlParameter commandParameters) SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, trans.Connection, trans, cmdType, SQLString, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; / <summary> / 在一个连接串上执行一个命令,返回一个SqlDataReader对象 / 使用提供的参数. /

41、</summary> / <remarks> / SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24); / </remarks> / <param name="connectionString">一个有效的SqlConnection连接串</param> / <param name=

42、"SQLString">存贮过程名称或是一个T-SQL语句串</param> / <returns>一个结果集对象SqlDataReader</returns> public static SqlDataReader ExecuteReader(string connectionString, string SQLString) SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(connectionString); / 如果不存在要查询

43、的对象,则发生异常 / 连接要关闭 / CommandBehavior.CloseConnection在异常时不发生作用 try PrepareCommand(cmd, conn, null, CommandType.Text, SQLString, null); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear(); return rdr; catch conn.Close(); throw; / <summary> / 在一个连接串上执行一个命

44、令,返回一个SqlDataReader对象 / 使用提供的参数. / </summary> / <remarks> / SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24); / </remarks> / <param name="connectionString">一个有效的SqlConnection

45、连接串</param> / <param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> / <param name="commandParameters">执行命令的参数集</param> / <returns>一个结果集对象SqlDataReader</returns> public static SqlDataReader ExecuteReader(string connectionString, string SQLStr

46、ing, params SqlParameter commandParameters) SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(connectionString); / 如果不存在要查询的对象,则发生异常 / 连接要关闭 / CommandBehavior.CloseConnection在异常时不发生作用 try PrepareCommand(cmd, conn, null, CommandType.Text, SQLString, commandParameters); SqlData

47、Reader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear(); return rdr; catch conn.Close(); throw; / <summary> / 在一个连接串上执行一个命令,返回一个SqlDataReader对象 / 使用提供的参数. / </summary> / <remarks> / SqlDataReader r = ExecuteReader(connString, CommandType.StoredProced

48、ure, "PublishOrders", new SqlParameter("prodid", 24); / </remarks> / <param name="connectionString">一个有效的SqlConnection连接串</param> / <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param> / <param name="SQLString">存贮过程名称或是一个T-SQL语句串</param> / <param name="commandParameters">执行命令的参数集</param> / <returns>一个结果集对象SqlDataReader</returns> public static SqlDataReader ExecuteReader(string conn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论