2013-06-18 2 views
1

Я хочу вставить имя в таблицу имен (tName), свойства базы данных в моем классе Name, и я создал модель Add метод для добавления значения в базу данных.Вставить в таблицу SQL и получить объект

Затем я хочу вернуть объект na с последним добавленным параметром.

Как я могу это сделать?

public Name Add(string name) 
{ 
    Name na = new Name(); 
    using (DatabaseCommand cmd = 
        new DatabaseCommand("INSERT INTO tName (NA) values (@nm)")) 
    { 
     cmd.Parameters.AddWithValue("@nm", name); 
     int created=cmd.ExecuteNonQuery(); 
     if (created == 1) 
     { 

     } 
     return na; 
    } 
} 
+1

Я не понимаю, что вы пытаетесь вернуться назад, можете ли вы отредактировать свой пост и объяснить больше, что вы пытаетесь вернуть? –

+0

Какой SQL-сервер и версия вы используете? Ответ различен для каждого SQL-сервера (MySQL против MS SQL vs PostgreSQL и т. Д.). Какие поля находятся в таблице, которые должны быть заполнены обратно в экземпляр объекта «Имя»? – Corey

+0

Sql servr 2008 и i wnt для возврата идентификатора и имени – user2495593

ответ

3

Вы знакомы с дополнительным OUTPUT пунктом в INSERT заявления? Вы можете выполнить такой запрос:

INSERT INTO tName (NA) 
OUTPUT INSERTED.ID, INSERTED.tName 
VALUES (@nm) 

Это позволяет вам вывести вновь созданный идентификатор вставленной строки. Подробнее о OUTPUT, пункты here.

Конечно, если вы сделаете это как из C#, вам нужно будет использовать ExecuteReader вместо ExecuteNonQuery, так как теперь нас интересует возвращаемое значение запроса, а не только количество затронутых строк. Узнайте больше о ExecuteReaderhere.

Смежные вопросы