《c#操作数据库底层封装代码》由会员分享,可在线阅读,更多相关《c#操作数据库底层封装代码(54页珍藏版)》请在金锄头文库上搜索。
1、/ / SqlHelper类提供很高的数据访问性能 / 使用SqlClient类的通/ / SqlHelper类提供很高的数据访问性能, / 使用SqlClient类的通用定义. / public abstract class SQLHelper /存贮Cache缓存的Hashtable集合 private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable(); / / 在缓存中添加参数数组 / / 参数的Key / 参数数组 public static void CacheParameters(string c
2、acheKey, params SqlParameter commandParameters) parmCachecacheKey = commandParameters; / / 提取缓存的参数数组 / / 查找缓存的key / 返回被缓存的参数数组 public static SqlParameter GetCachedParameters(string cacheKey) SqlParameter cachedParms = (SqlParameter)parmCachecacheKey; if (cachedParms = null) return null; SqlParameter
3、 clonedParms = new SqlParametercachedParms.Length; for (int i = 0, j = cachedParms.Length; i j; i+) clonedParmsi = (SqlParameter)(ICloneable)cachedParmsi).Clone(); return clonedParms; / / 提供一个SqlCommand对象的设置 / / SqlCommand对象 / SqlConnection 对象 / SqlTransaction 对象 / CommandType 如存贮过程,T-SQL / 存贮过程名或查询
4、串 / 命令中用到的参数集 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.Transac
5、tion = trans; cmd.CommandType = cmdType; if (cmdParms != null) foreach (SqlParameter parm in cmdParms) cmd.Parameters.Add(parm); / / 使用连接字符串,执行一个SqlCommand命令(没有记录返回) / 使用提供的参数集. / / / int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, PublishOrders, new SqlParameter(prodid, 24); /
6、 / 一个有效的SqlConnection连接串 / 存贮过程名称或是一个T-SQL语句串 / 受此命令影响的行数 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)
7、; int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; / / 使用连接字符串,执行一个SqlCommand命令(没有记录返回) / 使用提供的参数集. / / / int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, PublishOrders, new SqlParameter(prodid, 24); / / 一个有效的SqlConnection连接串 / 存贮过程名称或是一个T-SQL语句串 / 执行命令的参数集 /
8、 受此命令影响的行数 public static 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 = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; / / 使用连接字符串,执行一个SqlCommand命令(没有记录返回) / 使用提供的参数集. / / / int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, PublishOrders, new SqlParameter(prodid, 24); / / 一个有效的SqlConnection连接串