public static void ExecutePorcedure(string procName, SqlParameter[] coll)
{ int i = 0; try
{ i = getConn(); SqlCommand ocomm = new SqlCommand(); ocomm.Connection = sconn[i].conn; sconn[i].sqlStr = procName; openoconnection(i); for (int j = 0; j < coll.Length; j++)
{ ocomm.Parameters.Add(coll[j]); } ocomm.CommandType = CommandType.StoredProcedure; ocomm.CommandText = procName; ocomm.ExecuteNonQuery(); ocomm.Parameters.Clear(); ocomm.Dispose(); } catch (Exception e)
{ errorConn++; logError(e, procName); sconn[i].error = e.ToString(); throw new Exception(e.Message); } finally
{ freeConn(i); } } /// <summary> /// 执行Sql查询语句并返回SqlDataAdapter /// </summary> /// <param name="numConn">连接号</param> /// <param name="sqlStr">传入的Sql语句</param> public static SqlDataAdapter dataAdapter(SqlConnection Conn, String sqlStr)
{ SqlDataAdapter ret = null; try
{ SqlCommand ocomm = new SqlCommand(); ocomm.Connection = Conn; openoconnection(Conn); ret = new SqlDataAdapter(sqlStr, Conn); ocomm.Dispose(); } catch (Exception e)
{ logError(e, sqlStr); Conn.Close(); Conn.Dispose(); throw new Exception(e.Message); } finally
{ } return ret; } /// <summary> /// 执行Sql查询语句并返回SqlDataAdapter /// </summary> /// <param name="numConn">连接号</param> /// <param name="sqlStr">传入的Sql语句</param> public static SqlDataAdapter dataAdapter(int numConn, String sqlStr)
{ SqlDataAdapter ret = null; int i = 0; try
{ i = numConn; SqlCommand ocomm = new SqlCommand(); ocomm.Connection = sconn[i].conn; sconn[i].sqlStr = sqlStr; openoconnection(i); ret = new SqlDataAdapter(sqlStr, sconn[i].conn); ocomm.Dispose(); } catch (Exception e)
{ errorConn++; logError(e, sqlStr); sconn[i].error = e.ToString(); freeConn(i); throw new Exception(e.Message); } finally
{ } return ret; } /// <summary> /// 执行Sql查询语句并返回第一行的第一条记录,返回值为object 使用时需要拆箱操作 -> Unbox /// </summary> /// <param name="sqlstr">传入的Sql语句</param> /// <returns>object 返回值 </returns> public static object ExecuteScalar(string sqlstr)
{ object obj = new object(); int i = 0; try
{ i = getConn(); SqlCommand ocomm = new SqlCommand(); ocomm.Connection = sconn[i].conn; sconn[i].sqlStr = sqlstr; openoconnection(i); ocomm.CommandType = CommandType.Text; ocomm.CommandText = sqlstr; obj = ocomm.ExecuteScalar(); ocomm.Dispose(); } catch (Exception e)
{ errorConn++; logError(e, sqlstr); sconn[i].error = e.ToString(); throw new Exception(e.Message); } finally
{ freeConn(i); } return obj; } /// <summary> /// 执行Sql查询语句,同时进行事务处理 /// </summary> /// <param name="sqlstr">传入的Sql语句</param> public static void ExecuteSqlWithTransaction(string sqlstr)
{ SqlTransaction trans; int i = 0; i = getConn(); SqlCommand ocomm = new SqlCommand(); ocomm.Connection = sconn[i].conn; sconn[i].sqlStr = sqlstr; openoconnection(i); trans = sconn[i].conn.BeginTransaction(); ocomm.Transaction = trans; try
{ ocomm.CommandType = CommandType.Text; ocomm.CommandText = sqlstr; ocomm.ExecuteNonQuery(); trans.Commit(); } catch (Exception e)
{ errorConn++; logError(e, sqlstr); sconn[i].error = e.ToString(); trans.Rollback(); throw new Exception(e.Message); } finally
{ ocomm.Dispose(); freeConn(i); } }
{ int i = 0; try
{ i = getConn(); SqlCommand ocomm = new SqlCommand(); ocomm.Connection = sconn[i].conn; sconn[i].sqlStr = procName; openoconnection(i); for (int j = 0; j < coll.Length; j++)
{ ocomm.Parameters.Add(coll[j]); } ocomm.CommandType = CommandType.StoredProcedure; ocomm.CommandText = procName; ocomm.ExecuteNonQuery(); ocomm.Parameters.Clear(); ocomm.Dispose(); } catch (Exception e)
{ errorConn++; logError(e, procName); sconn[i].error = e.ToString(); throw new Exception(e.Message); } finally
{ freeConn(i); } } /// <summary> /// 执行Sql查询语句并返回SqlDataAdapter /// </summary> /// <param name="numConn">连接号</param> /// <param name="sqlStr">传入的Sql语句</param> public static SqlDataAdapter dataAdapter(SqlConnection Conn, String sqlStr)
{ SqlDataAdapter ret = null; try
{ SqlCommand ocomm = new SqlCommand(); ocomm.Connection = Conn; openoconnection(Conn); ret = new SqlDataAdapter(sqlStr, Conn); ocomm.Dispose(); } catch (Exception e)
{ logError(e, sqlStr); Conn.Close(); Conn.Dispose(); throw new Exception(e.Message); } finally
{ } return ret; } /// <summary> /// 执行Sql查询语句并返回SqlDataAdapter /// </summary> /// <param name="numConn">连接号</param> /// <param name="sqlStr">传入的Sql语句</param> public static SqlDataAdapter dataAdapter(int numConn, String sqlStr)
{ SqlDataAdapter ret = null; int i = 0; try
{ i = numConn; SqlCommand ocomm = new SqlCommand(); ocomm.Connection = sconn[i].conn; sconn[i].sqlStr = sqlStr; openoconnection(i); ret = new SqlDataAdapter(sqlStr, sconn[i].conn); ocomm.Dispose(); } catch (Exception e)
{ errorConn++; logError(e, sqlStr); sconn[i].error = e.ToString(); freeConn(i); throw new Exception(e.Message); } finally
{ } return ret; } /// <summary> /// 执行Sql查询语句并返回第一行的第一条记录,返回值为object 使用时需要拆箱操作 -> Unbox /// </summary> /// <param name="sqlstr">传入的Sql语句</param> /// <returns>object 返回值 </returns> public static object ExecuteScalar(string sqlstr)
{ object obj = new object(); int i = 0; try
{ i = getConn(); SqlCommand ocomm = new SqlCommand(); ocomm.Connection = sconn[i].conn; sconn[i].sqlStr = sqlstr; openoconnection(i); ocomm.CommandType = CommandType.Text; ocomm.CommandText = sqlstr; obj = ocomm.ExecuteScalar(); ocomm.Dispose(); } catch (Exception e)
{ errorConn++; logError(e, sqlstr); sconn[i].error = e.ToString(); throw new Exception(e.Message); } finally
{ freeConn(i); } return obj; } /// <summary> /// 执行Sql查询语句,同时进行事务处理 /// </summary> /// <param name="sqlstr">传入的Sql语句</param> public static void ExecuteSqlWithTransaction(string sqlstr)
{ SqlTransaction trans; int i = 0; i = getConn(); SqlCommand ocomm = new SqlCommand(); ocomm.Connection = sconn[i].conn; sconn[i].sqlStr = sqlstr; openoconnection(i); trans = sconn[i].conn.BeginTransaction(); ocomm.Transaction = trans; try
{ ocomm.CommandType = CommandType.Text; ocomm.CommandText = sqlstr; ocomm.ExecuteNonQuery(); trans.Commit(); } catch (Exception e)
{ errorConn++; logError(e, sqlstr); sconn[i].error = e.ToString(); trans.Rollback(); throw new Exception(e.Message); } finally
{ ocomm.Dispose(); freeConn(i); } }
这些是静态方法
直接类名.方法名
比如这个类的名字叫SqlHelper
就直接SqlHelper.ExecutePorcedure()
建议系统的学习ADO.NET
/// <summary> /// 执行存储过程
/// </summary>
/// <param name="procName">存储过程名</param>
/// <param name="coll">SqlParameters 集合</param> public static void ExecutePorcedure(string procName,SqlParameter[] coll){
int i=0; try { i = getConn(); SqlCommand ocomm = new SqlCommand();ocomm.Connection = sconn[i].conn; sconn[i].sqlStr = procName; openoconnection(i);for(int j=0;j<coll.Length;j++) {
ocomm.Parameters .Add(coll[j]); } ocomm.CommandType=CommandType.StoredProcedure ; ocomm.CommandText =procName; ocomm.ExecuteNonQuery(); ocomm.Parameters.Clear(); ocomm.Dispose(); } catch(Exception e) { errorConn++;logError(e,procName); sconn[i].error = e.ToString(); throw new Exception(e.Message); } finally {
freeConn(i); }}
procName —— sql语句
SqlParameter —— 参数