Вызов Хранимой Процедуры C# Mssql

Тема в разделе ".NET - Databases (ADO.NET, ...)", создана пользователем capitan-glue, 24 сен 2013.

  1. capitan-glue

    capitan-glue New Member

    Регистрация:
    24 сен 2013
    Сообщения:
    1
    Симпатии:
    0
    Простенькая задача, но никак не могу решить.
    Код из БД:

    CREATE PROCEDURE get_role
    @login varchar (20),
    @password varchar (32),
    @role int output
    AS
    SET NOCOUNT ON
    DECLARE @answer varchar (20)

    set @role = (
    select users._role
    from users
    where users._name = @login AND users._password = @password);

    ;

    Часть кода из C# :
    //...
    SqlConnection conn = new SqlConnection(connStr);
    try
    {
    //пробуем подключиться
    conn.Open();
    }
    catch (SqlException se)
    {
    label3.Text = "Ошибка подключения к БД";
    return;
    }
    //...
    using (SqlCommand cm1 = new SqlCommand("get_role", conn))
    {
    cm1.CommandType = CommandType.StoredProcedure;
    SqlParameter param1 = new SqlParameter();
    param1.ParameterName = "@login";
    param1.Direction = ParameterDirection.Input;
    param1.SqlDbType = SqlDbType.Text;
    param1.Value = textBox1.Text;
    param1.Size = 20;
    cm1.Parameters.Add(param1);

    param1 = new SqlParameter();
    param1.ParameterName = "@password";
    param1.Direction = ParameterDirection.Input;
    param1.SqlDbType = SqlDbType.Text;
    param1.Size = 32;
    param1.Value = hash;
    cm1.Parameters.Add(param1);

    param1 = new SqlParameter();
    param1.ParameterName = "@role";
    param1.Direction = ParameterDirection.Output;
    param1.SqlDbType = SqlDbType.SmallInt;
    cm1.Parameters.Add(param1);

    try
    {
    cm1.ExecuteNonQuery();
    }
    catch (System.Data.SqlClient.SqlException se)
    {
    label3.Text = "Данная функция временно не работает, обратитесь к сист. администратору.";
    conn.Close();
    return;//не найдена процедура
    }
    catch (System.InvalidOperationException se) //Текущее состояние подключения закрыто.
    {
    label3.Text = "Потеряно соединение с БД";
    conn.Close();
    return;
    }
    ...
    Вопрос вроде простой, но: Как получить значение, которое в cm1.Parameters["@roleЭ] ??? Никак не смог найти. :(

    Добавлено: Вопрос снят, ответ:
    int x = (int)cm1.Parameters["@role"].Value;
     
Загрузка...
Похожие Темы - Вызов Хранимой Процедуры
  1. k85
    Ответов:
    0
    Просмотров:
    358
  2. alexas1
    Ответов:
    0
    Просмотров:
    504
  3. Sanchezz86
    Ответов:
    1
    Просмотров:
    584
  4. vln1981
    Ответов:
    0
    Просмотров:
    703
  5. JohnLemon
    Ответов:
    1
    Просмотров:
    829

Поделиться этой страницей