SqlCeParameter возвращает Auto ID (первичный ключ) - PullRequest
5 голосов
/ 25 июня 2011

У меня есть оператор SQL SqlCeParameter, например:

mySQLCommand1.CommandText = @"
   INSERT INTO clientSubjectiveComplaints (clientSubComplaintCreated)
   VALUES (@ClientSubComplaintCreated)
   ";

После успешного выполнения INSERT мне нужно вернуть автоматически сгенерированный идентификатор (первичный ключ INT), чтобы я мог использовать его во втором операторе INSERT.

Возможно ли это для SqlCe? Пожалуйста, если вы можете привести пример.

Ответы [ 2 ]

7 голосов
/ 25 июня 2011

Как это:

using (var connection = new SqlCeConnection(Settings.Default.Database1ConnectionString))
using (var command = connection.CreateCommand())
{
    connection.Open();

    command.CommandText = @"
        INSERT Test (Name)
        VALUES (@TestName)
        ";
    command.Parameters.AddWithValue("TestName", "SomeName");
    command.ExecuteNonQuery();

    command.CommandText = "SELECT @@IDENTITY";
    var id = command.ExecuteScalar();
}
4 голосов
/ 25 июня 2011
ExecuteScalar("SELECT @@IDENTITY")

Более подробную информацию можно найти здесь .

...