Saltar al contenido

Obtener el ID de la última inserción con SQLite.NET en C #

Solución:

Usando C # (.net 4.0) con SQLite, la clase SQLiteConnection tiene una propiedad LastInsertRowId que es igual a la clave de número entero principal del elemento insertado (o actualizado) más recientemente.

El rowID se devuelve si la tabla no tiene una clave entera principal (en este caso, el rowID es la columna se crea automáticamente).

Consulte https://www.sqlite.org/c3ref/last_insert_rowid.html para obtener más información.

En cuanto a envolver varios comandos en una sola transacción, cualquier comando ingresado después de que comience la transacción y antes de que se confirme son parte de una transacción.

long rowID;
using (SQLiteConnection con = new SQLiteConnection([datasource])
{
    SQLiteTransaction transaction = null;
    transaction = con.BeginTransaction();

    ... [execute insert statement]

    rowID = con.LastInsertRowId;

    transaction.Commit()
}

select last_insert_rowid();

Y deberá ejecutarlo como una consulta escalar.

string sql = @"select last_insert_rowid()";
long lastId = (long)command.ExecuteScalar(sql); // Need to type-cast since `ExecuteScalar` returns an object.

last_insert_rowid () es parte de la solución. Devuelve un número de fila, no el ID real.

cmd = CNN.CreateCommand();
cmd.CommandText = "SELECT last_insert_rowid()";
object i = cmd.ExecuteScalar();

cmd.CommandText = "SELECT " + ID_Name + " FROM " + TableName + " WHERE rowid=" + i.ToString();
i = cmd.ExecuteScalar();
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *