Answers:
下一个链接将带您进入精彩的教程,对我有很大帮助!
我几乎用完本文中的所有内容,为自己的C#应用程序创建SQLite数据库。
不要忘记下载SQLite.dll,并将其添加为对项目的引用。这可以使用NuGet并通过手动添加dll 来完成。
添加引用后,请在类顶部使用以下行从代码中引用dll:
using System.Data.SQLite;
您可以在此处找到dll:
您可以在此处找到NuGet方法:
接下来是创建脚本。创建数据库文件:
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();
在C#中创建创建脚本后,我认为您可能想添加回滚事务,它更加安全,并且可以防止数据库出现故障,因为数据将作为原子操作的最后大一部分提交给数据库。数据库,而不是零碎的数据库,例如,它可能在10个查询中的第5个失败。
有关如何使用交易的示例:
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
无法按预期工作,它将ExecuteNonQuery
立即执行而不是全部执行SQLiteTransaction
。为什么要使用TransactionScope
?
SQLiteTransaction tr = m_dbConnection.BeginTransaction(); SQLiteCommand command = new SQLiteCommand(...); command.Transaction = tr;
使用TransactionScope