c# - 以存储过程作为参数调用函数

标签 c# sql-server function stored-procedures

我在 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();          
}

现在我想要相同的函数但具有不同的存储过程,我想与另一个存储过程重用此函数。

如何将存储过程作为参数传递?

最佳答案

您可以从请求参数中获取存储过程名称和参数。

像这样:

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);

关于c# - 以存储过程作为参数调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52125091/

相关文章:

c# - Xamarin iOS 10 横向

SQL。 COUNT() 函数的错误结果

SQL查找每个客户最近的账户交易

javascript - Angular 将字符添加到数组中

javascript - 如何制作这样的数据类型

c# - 音频可视化工具 C#

c# - 如何在 C# 中使用 win2D.uwp 将文本写入图像时旋转文本?

javascript - 我需要评估吗?

c# - GDI+,从图形 DrawString() 中删除空格

sql - 更改 SQL SELECT 语句中的日期格式(DD/MM/YYYY)