Попробуйте использовать в своем запросе OUTPUT
предложение SQL Server - он может вернуть любое только что вставленное значение (здесь я предполагаю, что ваш столбец называется ID
- адаптируйте при необходимости):
objCommand.Connection = objConnection;
objCommand.CommandText = "INSERT INTO Moin(Title, TotalID, Code ) " +
"OUTPUT Inserted.ID " +
"VALUES (@Title , @TotalID, @Code ); "
и затем выполните его так:
int result = (int)objCommand.ExecuteScalar();
Поскольку вы возвращаете только одну строку и один столбец (только INT), вы можете использовать .ExecuteScalar()
дляполучить это значение обратно из оператора INSERT
.
С помощью предложения OUTPUT
можно вернуть любые только что введенные значения, а не только столбец идентификаторов.Таким образом, вы также можете возвращать значения, которые заполнены базой данных значениями по умолчанию, или что вам нужно.Если вы возвращаете несколько значений, вам нужно использовать средство чтения данных, чтобы прочитать их все - ExecuteScalar()
работает только для одного значения.
Но, как правильно заметил Андерс, - использование ORM, такого как Entity Framework, сделает всеэто автоматически для вас, и вам больше не придется иметь дело с этими необработанными командами SQL ....