W moim projekcie używam System.Data.SQLite. Baza danych zawiera tabelę Tags
, która zawiera początkowe pole autoinkrementacji ID
(typ Integer
). Kiedy piszę:Jak zwrócić wartość autoinkrementacji w kwerendzie wstawiania w SQLite?
using (SQLiteCommand command = conn.CreateCommand())
{
command.CommandText = "insert into Tags(name) values(@name) returning into @id";
command.Parameters.Add("@id", DbType.Int32).Direction = ParameterDirection.Output;
command.ExecuteNonQuery();
}
Program Visual Studio stwierdził, że operacja nie jest obsługiwana. Jak to naprawić?
Błąd występuje na linii: rada
command.Parameters.Add("@id", DbType.Int32).Direction = ParameterDirection.Output;
Gdzie jest kod roboczych? Mam ten sam problem, ale uważam "SELECT last_insert_rowid()" za irytująco mało precyzyjny. Jak ustawić @name? Gdzie jest "SELECT last_insert_rowid()"? Na marginesie: Jaką funkcjonalność dodałeś do Calibre? ;) – hoytster
Myślę, że nie można ustawić @name. Twój klucz musi mieć nazwę "ID". "SELECT last_insert_rowid()" działa z ostatnią wstawką. – dublicator