Code
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 /// 执行存储过程
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 }
Code
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 }
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 }