public interface ISqlAccessorObject {
 void ExecuteSQL(string sql, SqlParameter[] prars, out DataSet ds); void ExecuteSQL(string sql, SqlParameter[] paras, int recBegin, int recCount,  out DataSet ds);void ExecuteNonSQL(string sql, SqlParameter[] paras, out int result);void ExecuteStoreProc(string spName, SqlParameter[] paras, out DataSet ds);void ExecuteStoreProc(string spName, SqlParameter[] paras, int recBegin, int recCount, out DataSet ds);void ExecuteNonStoreProc(string spName, SqlParameter[] paras, out int result);void ExecuteSqlScalar(string sql, SqlParameter[] paras, out string result);
}

解决方案 »

  1.   

    public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues)
    {
    //if we receive parameter values, we need to figure out where they go
    if ((parameterValues != null) && (parameterValues.Length > 0)) 
    {
    //pull the parameters for this stored procedure from the parameter cache (or discover them & populate the cache)
    SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName); //assign the provided values to these parameters based on parameter order
    AssignParameterValues(commandParameters, parameterValues); //call the overload that takes an array of SqlParameters
    return ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName, commandParameters);
    }
    //otherwise we can just call the SP without params
    else 
    {
    return ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName);
    }
    }==================================
    弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪的
    星星蓝蓝的天.
      

  2.   

    这是我自己的一个SQLServer数据库访问的类的接口申明。
    实现类的创建函数接受一些参数,如服务器名称、数据库名称、登陆用户名,产生连接信息ConnInfo。具体执行数据查询的方法如下:
    public void ExecuteStoreProc(string spName, SqlParameter[] paras, out DataSet ds) {
    SqlConnection Conn = new SqlConnection(this.ConnInfo.ConnectionString);
    Conn.Open();
    try{
    SqlCommand cmd = new SqlCommand(spName, Conn);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandTimeout = CMD_TIME_OUT_DEFAULT;
    DataSet tds = new DataSet(spName);
    if(paras!=null){
      for(int i=0;i<paras.Length;i++){
      cmd.Parameters.Add(paras[i]);
    }
    }
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    try{
    sda.Fill(tds);
    }catch(Exception e){
    this.ReportError( "ExecuteStoreProc()错误", e.Message);
    }
    ds = tds;
    }finally{
    Conn.Close();
    }
    }
      

  3.   

    建议用共享方法,定义如下:
    Public Shared Function Connection()