1.如果自己手动创建了数据库和字段,则不需要再创建table,基本流程:
1)SQLiteConnectionStringBuilder sb = new SQLiteConnectionStringBuilder();
sb.DataSource = @"AA.db";//数据库名字
var conStr = sb.ToString();
2)using (var con = new SQLiteConnection(conStr)){……}这句话代表跟数据库建立连接
3)在上面建立的连接con中执行命令或事物
using (var cmd = new SQLiteCommand(cmdFormat1, con)){……}// cmdFormat1为command的string SQL语句;
command可以执行Insert、Select、Read等操作;向表格中插入数值除了固定的SQL Insert语句插入方法以外,还可以通过Parameters实现。
const string cmdFormat1 = "INSERT INTO PERSON VALUES(@ID,@NAME,@AGE)";//不规定具体的数值
cmd1.Parameters.Add(new SQLiteParameter("ID", 2));//分别对每个字段赋值
cmd1.Parameters.Add(new SQLiteParameter("NAME","Betty"));
cmd1.Parameters.Add(new SQLiteParameter("AGE", 24));
有时,需要将取得的数据输出,则再cmd中执行:
var reader=cmd1.ExecuteReader();
while (reader.Read())
{
int age = reader.GetInt16(0);//读到的第0列数据,同理,可以读取其他列数据
Console.WriteLine(age);
Console.ReadKey();
}
事务的代码:
using (var trans = con.BeginTransaction())
{
……(在此可以执行各种command等)
Trans.Commit();
}
在对数据库进行操作时,有时可能在执行SQL代码时出现错误,对数据库进行误操作,为了避免这种情况的出现,可用事务先提交,Trans.Commit()始终带try……catch……,当提交出现错误时在catch中进行rollback操作,代码如下
try
{
trans.Commit();
}
catch (System.Exception ex)
{
Console.WriteLine("Commit's exception:{0}",ex.ToString());
try
{
trans.Rollback();
}
catch (System.Exception ex1)
{
Console.WriteLine("Rollback's exception:{0}",ex1.ToString());
}
}
4)在程序中自己创建表格,
const string cmdFormat = "CREATE TABLE PERSON(ID INT,NAME STRING,AGE INT);";
执行该命令,如果该table已经建立了,在command中执行上面的那句话就会出错,为了避免该问题,在command中执行该命令时,加个try……catch……,这样,即使table已经建立,程序可以继续往下执行;