adressmoeistranici
@adressmoeistranici
Делатель

Как получить Guid только добавленного элемента?

только что добавил строку, а нужно узнать что за ид у него получился
SqlCommand command = new SqlCommand("INSERT INTO [Library] (Title, Tags, Body)VALUES(@Title, @Tags, @Body)", sqlConnection);
            command.Parameters.AddWithValue("Title", title);
            command.Parameters.AddWithValue("Tags", tags);
            command.Parameters.AddWithValue("Body", body);
            await command.ExecuteNonQueryAsync();
            command = new SqlCommand("SELECT MAX(Id) FROM [Library]", sqlConnection);//
            Guid guid = (Guid)command.ExecuteScalar();

мах не подходит потому что тип guidovij не всегда новый больше чем предыдущий?
как тут получить точный гуид?
  • Вопрос задан
  • 365 просмотров
Решения вопроса 2
@cicatrix
было бы большой ошибкой думать
using (SqlConnection conn = new SqlConnection(connectionString))
{
    string sqlText = "INSERT INTO [Library] (Title, Tags, Body) OUTPUT INSERTED.[Id] VALUES(@Title, @Tags, @Body)";
    using (SqlCommand cmd = new SqlCommand(sqlText, conn))
    {
        cmd.Parameters.AddWithValue("Title", title);
        cmd.Parameters.AddWithValue("Tags", tags);
        cmd.Parameters.AddWithValue("Body", body);
                    
        try
        {
            conn.Open();
            Guid insertedGuid = (Guid)await cmd.ExecuteScalarAsync(); // <-- созданный GUID
        }
        finally
        {
            conn.Close();
        }                    
    } // using cmd
} // using conn
Ответ написан
@art_karetnikov
Лучший мой проект: Мобильный банк Сбербанка РФ.
Id какого типа?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы