我在C#中具有以下功能,效果很好
private void AddQueue()
{
SqlConnection conn = forconnection();
conn.Open();
SqlCommand cmd = new SqlCommand("spInsertFormIssue",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Qdatetime", SqlDbType.DateTime).Value = DateTime.Now;
cmd.ExecuteNonQuery();
conn.Close();
}
现在我想要相同的功能,但具有不同的存储过程,我想将此功能与另一个存储过程一起重用。
如何将存储过程作为参数传递?
答案 0 :(得分:4)
您可以从请求参数中获取存储过程的名称和参数。
赞:
private void AddQueue(string spName, List<SqlParameter> SqlParameters)
{
...
SqlCommand cmd = new SqlCommand(spName, conn);
...
if (SqlParameters.Count > 0)
cmd.Parameters.AddRange(SqlParameters.ToArray());
...
}
您可以这样称呼它:
List<SqlParameter> sqlParameters = new List<SqlParameter>();
sqlParameters.Add(new SqlParameter("@Qdatetime", SqlDbType.DateTime) { Value = DateTime.Now });
AddQueue("spInsertFormIssue", sqlParameters);
答案 1 :(得分:0)
只需将存储过程的名称作为参数传递即可:
string procedureName = "spInsertFormIssue";
private void AddQueue(string procedureName)
{
SqlConnection conn = forconnection();
conn.Open();
SqlCommand cmd = new SqlCommand(procedureName,conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Qdatetime", SqlDbType.DateTime).Value = DateTime.Now;
cmd.ExecuteNonQuery();
conn.Close();
}