Respostas:
O próximo link o levará a um ótimo tutorial, que me ajudou muito!
Quase usei tudo nesse artigo para criar o banco de dados SQLite para meu próprio aplicativo C #.
Não se esqueça de baixar o SQLite.dll e adicione-o como referência ao seu projeto. Isso pode ser feito usando o NuGet e adicionando a dll manualmente.
Depois de adicionar a referência, consulte a dll do seu código usando a seguinte linha na parte superior da sua classe:
using System.Data.SQLite;
Você pode encontrar as DLLs aqui:
Você pode encontrar o caminho NuGet aqui:
A seguir, o script de criação. Criando um arquivo de banco de dados:
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();
Depois que você criou um script de criação em C #, acho que você pode querer adicionar transações de reversão, é mais seguro e evitará que seu banco de dados falhe, porque os dados serão confirmados no final em uma grande parte como uma operação atômica para o banco de dados e não em pequenos pedaços, onde poderia falhar na 5ª das 10 consultas, por exemplo.
Exemplo de como usar transações:
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
não funciona como esperado, ele será executado ExecuteNonQuery
imediatamente e não todos juntos, como SQLiteTransaction
. Por que usar TransactionScope
?
SQLiteTransaction tr = m_dbConnection.BeginTransaction(); SQLiteCommand command = new SQLiteCommand(...); command.Transaction = tr;
mais usandoTransactionScope