¡El siguiente enlace lo llevará a un gran tutorial, que me ayudó mucho!
Cómo SQLITE en C #
Casi utilicé todo en ese artículo para crear la base de datos SQLite para mi propia aplicación C #.
No olvide descargar el SQLite.dll y agregarlo como referencia a su proyecto. Esto se puede hacer usando NuGet y agregando el dll manualmente.
Después de agregar la referencia, consulte la dll de su código utilizando la siguiente línea en la parte superior de su clase:
using System.Data.SQLite;
Puedes encontrar los dll aquí:
DLL de SQLite
Puedes encontrar la forma NuGet aquí:
NuGet
El siguiente es el script de creación. Crear un archivo de base de datos:
SQLiteConnection.CreateFile("MyDatabase.sqlite");
SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
m_dbConnection.Open();
string sql = "create table highscores (name varchar(20), score int)";
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();
sql = "insert into highscores (name, score) values ('Me', 9001)";
command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();
m_dbConnection.Close();
Después de crear un script de creación en C #, creo que es posible que desee agregar transacciones de reversión, es más seguro y evitará que su base de datos falle, porque los datos se confirmarán al final en una gran pieza como una operación atómica para el base de datos y no en partes pequeñas, donde podría fallar en la quinta de 10 consultas, por ejemplo.
Ejemplo sobre cómo usar transacciones:
using (TransactionScope tran = new TransactionScope())
{
//Insert create script here.
//Indicates that creating the SQLiteDatabase went succesfully, so the database can be committed.
tran.Complete();
}
System.Transactions.TransactionScope
no funciona como se esperaba, se ejecutará deExecuteNonQuery
inmediato y no todos juntos, comoSQLiteTransaction
. ¿Por qué usarTransactionScope
?SQLiteTransaction tr = m_dbConnection.BeginTransaction(); SQLiteCommand command = new SQLiteCommand(...); command.Transaction = tr;
usarloTransactionScope