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);
}
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);
}
{
//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);
}
}==================================
弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪的
星星蓝蓝的天.
实现类的创建函数接受一些参数,如服务器名称、数据库名称、登陆用户名,产生连接信息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();
}
}
Public Shared Function Connection()