Вызвать функцию с хранимой процедурой в качестве параметра - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть следующая функция в 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();          
}

Теперь мне нужна та же функция, но с другой хранимой процедурой, я хочу использовать эту функцию с другой хранимой процедурой.

Как передать хранимую процедуру в качестве аргумента?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Просто передайте имя хранимой процедуры в качестве параметра:

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();          
    }
0 голосов
/ 01 сентября 2018

Вы можете получить имя и параметры хранимой процедуры из аргумента запроса.

Как это:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...