C# SQLite编程总结
1.如果自己手動(dòng)創(chuàng)建了數(shù)據(jù)庫(kù)和字段,則不需要再創(chuàng)建table,基本流程:
1)SQLiteConnectionStringBuilder sb = new SQLiteConnectionStringBuilder();
??????????? sb.DataSource = @"AA.db";//數(shù)據(jù)庫(kù)名字
??????????? var conStr = sb.ToString();
2)using (var con = new SQLiteConnection(conStr)){……}這句話代表跟數(shù)據(jù)庫(kù)建立連接
3)在上面建立的連接con中執(zhí)行命令或事物
using (var cmd = new SQLiteCommand(cmdFormat1, con)){……}// cmdFormat1為command的string SQL語(yǔ)句;
command可以執(zhí)行Insert、Select、Read等操作;向表格中插入數(shù)值除了固定的SQL Insert語(yǔ)句插入方法以外,還可以通過(guò)Parameters實(shí)現(xiàn)。
const string cmdFormat1 = "INSERT INTO PERSON VALUES(@ID,@NAME,@AGE)";//不規(guī)定具體的數(shù)值
cmd1.Parameters.Add(new SQLiteParameter("ID", 2));//分別對(duì)每個(gè)字段賦值
cmd1.Parameters.Add(new SQLiteParameter("NAME","Betty"));
cmd1.Parameters.Add(new SQLiteParameter("AGE", 24));
有時(shí),需要將取得的數(shù)據(jù)輸出,則再cmd中執(zhí)行:
var reader=cmd1.ExecuteReader();
while (reader.Read())
{
?? int age = reader.GetInt16(0);//讀到的第0列數(shù)據(jù),同理,可以讀取其他列數(shù)據(jù)
?? Console.WriteLine(age);
?? Console.ReadKey();
}
事務(wù)的代碼:
using (var trans = con.BeginTransaction())
{
……(在此可以執(zhí)行各種command等)
Trans.Commit();
}
在對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),有時(shí)可能在執(zhí)行SQL代碼時(shí)出現(xiàn)錯(cuò)誤,對(duì)數(shù)據(jù)庫(kù)進(jìn)行誤操作,為了避免這種情況的出現(xiàn),可用事務(wù)先提交,Trans.Commit()始終帶try……catch……,當(dāng)提交出現(xiàn)錯(cuò)誤時(shí)在catch中進(jìn)行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)在程序中自己創(chuàng)建表格,
const string cmdFormat = "CREATE TABLE PERSON(ID INT,NAME STRING,AGE INT);";
執(zhí)行該命令,如果該table已經(jīng)建立了,在command中執(zhí)行上面的那句話就會(huì)出錯(cuò),為了避免該問(wèn)題,在command中執(zhí)行該命令時(shí),加個(gè)try……catch……,這樣,即使table已經(jīng)建立,程序可以繼續(xù)往下執(zhí)行;
轉(zhuǎn)載于:https://www.cnblogs.com/SherryWang/p/3548162.html
總結(jié)
以上是生活随笔為你收集整理的C# SQLite编程总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 胖子哥大数据之路(一)-数据仓库也需要大
- 下一篇: C#用xpath查找某节点