1

/**//// <summary>2
/// 执行存储过程3
/// </summary>4
/// <param name="storedProcName">存储过程名</param>5
/// <param name="parameters">存储过程参数</param>6
/// <param name="tableName">DataSet结果中的表名</param>7
/// <returns>DataSet</returns>8
public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)9

{10
using (SqlConnection connection = new SqlConnection(connectionString))11

{12
DataSet dataSet = new DataSet();13
connection.Open();14
SqlDataAdapter sqlDA = new SqlDataAdapter();15
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);16
sqlDA.Fill(dataSet, tableName);17
connection.Close();18
return dataSet;19
}20
}1

/**//// <summary>2
/// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)3
/// </summary>4
/// <param name="connection">数据库连接</param>5
/// <param name="storedProcName">存储过程名</param>6
/// <param name="parameters">存储过程参数</param>7
/// <returns>SqlCommand</returns>8
private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)9

{10
SqlCommand command = new SqlCommand(storedProcName, connection);11
command.CommandType = CommandType.StoredProcedure;12
foreach (SqlParameter parameter in parameters)13

{14
if (parameter != null)15

{16
// 检查未分配值的输出参数,将其分配以DBNull.Value.17
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&18
(parameter.Value == null))19

{20
parameter.Value = DBNull.Value;21
}22
command.Parameters.Add(parameter);23
}24
}25

26
return command;27
}
浙公网安备 33010602011771号