当前位置:K88软件开发文章中心编程语言.NET.NET01 → 文章内容

C#操作sql通用类SQLHelper

减小字体 增大字体 作者:佚名     来源:asp编程网  发布时间:2018-12-30 7:43:01

using System
using System.Data
using System.Configuration
using System.Web
using System.Web.Security
using System.Collections
using System.Data.SqlClient
/// /// 数据库的通用访问代码/// 此类为抽象类,不允许实例化,在应用时直接调用即可/// public abstract class SqlHelper
{ //获取数据库连接字符串,其属于静态变量且只读,项目中所有文档可以直接使用,但不能修改 public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["pubsConnectionString"].ConnectionString
// 哈希表用来存储缓存的参数信息,哈希表可以存储任意类型的参数。 private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable())
/// ///执行一个不需要返回值的SqlCommand命令,通过指定专用的连接字符串。 /// 使用参数数组形式提供参数列表 /// /// /// 使用示例: /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24))
/// /// 一个有效的数据库连接字符串 /// SqlCommand命令类型 (存储过程, T-SQL语句, 等等。) /// 存储过程的名字或者 T-SQL 语句 /// 以数组形式提供SqlCommand命令中用到的参数列表 /// 返回一个数值表示此SqlCommand命令执行后影响的行数 public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{ SqlCommand cmd = new SqlCommand()
using (SqlConnection conn = new SqlConnection(connectionString))
{ //通过PrePareCommand方法将参数逐个加入到SqlCommand的参数集合中 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters)
int val = cmd.ExecuteNonQuery()
//清空SqlCommand中的参数列表 cmd.Parameters.Clear()
return val
} } /// ///执行一条不返回结果的SqlCommand,通过一个已经存在的数据库连接 /// 使用参数数组提供参数 /// /// /// 使用示例: /// int result = ExecuteNonQuery(conn, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24))
/// /// 一个现有的数据库连接 /// SqlCommand命令类型 (存储过程, T-SQL语句, 等等。) /// 存储过程的名字或者 T-SQL 语句 /// 以数组形式提供SqlCommand命令中用到的参数列表 /// 返回一个数值表示此SqlCommand命令执行后影响的行数 public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{ SqlCommand cmd = new SqlCommand()
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters)
int val = cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
return val
} /// /// 执行一条不返回结果的SqlCommand,通过一个已经存在的数据库事物处理 /// 使用参数数组提供参数 /// /// /// 使用示例: /// int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24))
/// /// 一个存在的 sql 事物处理 /// SqlCommand命令类型 (存储过程, T-SQL语句, 等等。) /// 存储过程的名字或者 T-SQL 语句 /// 以数组形式提供SqlCommand命令中用到的参数列表 /// 返回一个数值表示此SqlCommand命令执行后影响的行数 public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{ SqlCommand cmd = new SqlCommand()
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters)
int val = cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
return val
} /// /// 执行一条返回结果集的SqlCommand命令,通过专用的连接字符串。 /// 使用参数数组提供参数 /// /// /// 使用示例: /// SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24))
/// /// 一个有效的数据库连接字符串 /// SqlCommand命令类型 (存储过程, T-SQL语句, 等等。) /// 存储过程的名字或者 T-SQL 语句 /// 以数组形式提供SqlCommand命令中用到的参数列表 /// 返回一个包含结果的SqlDataReader public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{ SqlCommand cmd = new SqlCommand()
SqlConnection conn = new SqlConnection(connectionString)
// 在这里使用try/catch处理是因为如果方法出现异常,则SqlDataReader就不存在, //CommandBehavior.CloseConnection的语句就不会执行,触发的异常由catch捕获。 //关闭数据库连接,并通过throw再次引发捕捉到的异常。 try
{ PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters)
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
cmd.Parameters.Clear()
return rdr
} catch
{ conn.Close()
throw
} } /// /// 执行一条返回第一条记录第一列的SqlCommand命令,通过专用的连接字符串。 /// 使用参数数组提供参数 /// /// /// 使用示例: /// Object obj = ExecuteScalar(connStri

[1] [2]  下一页


C#操作sql通用类SQLHelper