下面開始為此表建立一個Data Access類,以展示在C#中如何 運用 SQLite,可以想象,和操作其他數據庫是幾乎一樣的,感謝ADO.NET的功勞。 最先是一個實體類 Book.cs: public class Book { private int id; private string bookName; private decimal price; public int ID { get { return id; } set { id = value; } } public string BookName { get { return bookName; } set { bookName = value; } } public decimal Price { get { return price; } set { price = value; } } }
?
編寫DAL類:? using System; using System.Collections.Generic; using System.Text; using System.Data.SQLite; namespace ConsoleApplication1 { public class BookDAL { public static bool Create(Book book) { try { using (SQLiteConnection conn = new SQLiteConnection("Data Source=e://test.db3")) { conn.Open(); SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "insert into Book(id,bookname,price)?
values(@ID,@BookName,@Price);"; cmd.Parameters.Add(new SQLiteParameter("ID", book.ID)); cmd.Parameters.Add(new SQLiteParameter("BookName", book.BookName)); cmd.Parameters.Add(new SQLiteParameter("Price", book.Price)); int i = cmd.ExecuteNonQuery(); return i == 1; } } catch (Exception) { //Do any logging operation here if necessary return false; } } public static bool Update(Book book) { try { using (SQLiteConnection conn = new SQLiteConnection("Data Source=e://test.db3")) { conn.Open(); SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "update Book set BookName=@BookName,Price=@Price where ID=@ID;"; cmd.Parameters.Add(new SQLiteParameter("ID", book.ID)); cmd.Parameters.Add(new SQLiteParameter("BookName", book.BookName)); cmd.Parameters.Add(new SQLiteParameter("Price", book.Price)); int i = cmd.ExecuteNonQuery(); return i == 1; } } catch (Exception) { //Do any logging operation here if necessary return false; } } public static bool Delete(int ID) { try { using (SQLiteConnection conn = new SQLiteConnection("Data Source=e://test.db3")) { conn.Open(); SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "delete from Book where ID=@ID;"; cmd.Parameters.Add(new SQLiteParameter("ID", ID)); int i = cmd.ExecuteNonQuery(); return i == 1; } } catch (Exception) { //Do any logging operation here if necessary return false; } } public static Book GetbyID(int ID) { try { using (SQLiteConnection conn = new SQLiteConnection("Data Source=e://test.db3")) { conn.Open(); SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from Book where ID=@ID;"; cmd.Parameters.Add(new SQLiteParameter("ID", ID)); SQLiteDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { Book book = new Book(); book.ID = dr.GetInt32(0); book.BookName = dr.GetString(1); book.Price = dr.GetDecimal(2); return book; } else return null; } } catch (Exception) { //Do any logging operation here if necessary return null; } } } } ? 編寫測試主程序:? using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Book book = new Book(); book.ID = 1; book.BookName = "Book A"; book.Price = 10.0m; BookDAL.Create(book); book.ID = 2; book.BookName = "第二本書"; book.Price = 13.0m; BookDAL.Create(book); book = BookDAL.GetbyID(2); Console.WriteLine(book.ID + " " + book.BookName + " " + book.Price); book.Price = 11.1m; BookDAL.Update(book); book = BookDAL.GetbyID(2); Console.WriteLine(book.ID + " " + book.BookName + " " + book.Price); book = BookDAL.GetbyID(1); Console.WriteLine(book.ID + " " + book.BookName + " " + book.Price); } } } 結尾 結果: 2 第二本書 13 2 第二本書 11.1 1 Book A 10