Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Получить значение идентифицирующего столбца

2.0K
18 октября 2009 года
nevile
138 / / 05.01.2007
Собственно что нужно описанно здесь.
Реализую следующим образом:
Код:
string conn_str = GetConnectionStrings();
        using (SqlConnection con = new SqlConnection(conn_str))
        {
            con.Open();

            string cmd_text = @"insert into [name] Values (@name)";

            using (SqlCommand cmd = new SqlCommand(cmd_text, con))
            {
                cmd.Parameters.Add("@name", System.Data.SqlDbType.VarChar).Value = "name";
                cmd.ExecuteNonQuery();
            }

            cmd_text = @"SELECT SCOPE_IDENTITY() as [S_I]";
            using (SqlCommand cmd = new SqlCommand(cmd_text, con))
            {
                cmd.ExecuteNonQuery();
               
            }
           
            con.Close();
        }


но возникла проблема с выводом этого значения. и есть такое подозрение что значение будет null.
2.0K
18 октября 2009 года
nevile
138 / / 05.01.2007
проблема решена.
Код:
string S_I;
        string conn_str = GetConnectionStrings();
        using (SqlConnection con = new SqlConnection(conn_str))
        {
            con.Open();

            string cmd_text = @"insert into [name] Values (@name); SELECT SCOPE_IDENTITY()";

            using (SqlCommand cmd = new SqlCommand(cmd_text, con))
            {
                cmd.Parameters.Add("@name", System.Data.SqlDbType.VarChar).Value = "name";
                S_I=cmd.ExecuteScalar().ToString();
            }
           
            con.Close();
        }
279
19 октября 2009 года
bave
456 / / 07.03.2004
А лучше хранимку написать и сделать так:
Вот примерно так:
Код:
SqlConnection connection = new SqlConnection(mMyConnectionString);
     SqlCommand command = new SqlCommand("dbo.AddName", connection);

     command.CommandType = CommandType.StoredProcedure;

     command.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 255));
     command.Parameters.Add(new SqlParameter("@insertedId", SqlDBType.BigInt));

     command.Parameters["@name"].Value = name;
     command.Parameters["@insertedId"].Direction = ParameterDirection.Output;

     connection.Open();

      command.ExecuteNonQuery();

      long insertedId = command.Parameters["@insertedId"];
     
     connection.Close();

Код процедуры:
 
Код:
create procedure dbo.AddName(
        @name nvarchar(255)
                @insertedId bigint = null output
        )
as
begin  
     insert into dbo.[name] Values (@name);

     set @insertedId = SCOPE_IDENTITY();
end
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог