C# SQLite编程总结
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已經建立,程序可以繼續往下執行;
轉載于:https://www.cnblogs.com/SherryWang/p/3548162.html
總結
以上是生活随笔為你收集整理的C# SQLite编程总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 胖子哥大数据之路(一)-数据仓库也需要大
- 下一篇: C#用xpath查找某节点