Nel mio progetto ho uso System.Data.SQLite. Database tavolo Tags
, che contiene autoincrement campo primario ID
(tipo Integer
). Quando scrivo:Come restituire valore autoincrement in query di inserimento a 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();
}
Visual Studio ha dichiarato che l'operazione non è supportata. Come sistemarlo?
errore si verifica on line: consigli
command.Parameters.Add("@id", DbType.Int32).Direction = ParameterDirection.Output;
Dov'è il codice di lavoro? Ho lo stesso problema, ma trovo che "SELECT last_insert_rowid()" sia fastidiosamente vago. Come viene impostato @name? Dove va "SELECT last_insert_rowid()" vai? A parte: quale funzionalità hai aggiunto a Calibre? ;) – hoytster
Penso che non si possa impostare @name. La tua chiave deve avere il nome "Id". "SELECT last_insert_rowid()" funziona con l'ultimo inserimento. – dublicator