Сохранение значения идентификатора id в переменной - PullRequest
0 голосов
/ 13 ноября 2018

Я использую ASP.NET, C # и SQL Server 2012.

У меня есть кнопка, которая будет вставлена ​​в новую строку в таблице с именем images, и я использую identityдля создания нового целочисленного идентификатора для image_id.

У меня также есть другие таблицы с image_id в качестве внешнего ключа.

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

Я не могу использовать значение последней строки, так как я буду использовать таблицу с другими кнопками, и если они нажмут одновременно, они могут получить данные другого.

Есть ли способ сохранить точный идентификатор вновь вставленной строки в переменной?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

В то время, когда вы вставляете новую запись, как часть того же пакета , также вызываете scope_identity() и возвращаете этот результат обратно в вашу программу. Это может выглядеть примерно так:

int newIDValue;
using (var cn = new SqlConnection("connection string here"))
using (var cmd = new SqlCommand("INSERT INTO [table] (...) VALUES (...); SELECT scope_idenity;"))
{
    cn.Open();
    newIDValue = (int)cmd.ExecuteScalar();
}

Обратите внимание, что команда SQL на самом деле представляет собой два оператора в одной строке.

0 голосов
/ 13 ноября 2018

Создайте класс и сохраните его в классе.

 public class yourClass
 {
    private int image_id;
    public int Image_id
    {
        get
        {
            return image_id;
        }
        set
        {
            image_id= value;
        }
    }
 }

В вашем коде, где вы генерируете image_id, установите yourClass.Image_id на новое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...