C#使用SQLite数据库详解

原创 2011年01月24日 12:07:00

 

转自:http://www.csharpwin.com/csharpspace/10437r5520.shtml

C#使用SQLite数据库详解

 

 

 

SQLite 是一个嵌入式的关系数据库系统,使用十分广泛。在一些数据量不大的应用程序中,如果使用SQLite可以极大的减少部署时的工作量。 要在C#中使用SQLite也很简单,只要找一个C#的wrapper就可以了,例如,我使用的就是来自

http://sqlite.phxsoftware.com/  的一个dll,System.Data.SQLite. 下载下来的文件是SQLite-1.0.65.0-setup.exe。只要安装一下就可以使用了,非常方便。该程序符合ADO.NET的规范,并且支持Visual Studio的可视化表设计器。

打开Visual Studio 2008,新建一个Console Application,为此项目添加System.Data.SQLite的引用。添加一个数据库连接,此时可以发现,新建连接中有了一个SQLite Database Connection,选择此类型的数据连接,并且新建一个文件,

test.db3. 接下来在新数据库中添加一张表,如下:

下面开始为此表建立一个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 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

 

C# 程序中使用 SQLite 数据库

C# 程序中使用 SQLite 数据库 2010-05-06 — Unmi 差不多在 3 年前我就关注过 SQLite,也整理了一篇 SQLite 的介绍:开源嵌入式数据库 SQLite 简...
  • e_wsq
  • e_wsq
  • 2012年02月04日 18:48
  • 1185

C#中如何使用SQLite数据库

1.首先需要一下两个文件 2.它的工具类如下  class SQLiteHelper     {         public static SQLiteConnection ...
  • yinbucheng
  • yinbucheng
  • 2017年03月03日 17:40
  • 823

C#操作SQLite数据库知识总结

C#操作SQLite Database C#下SQLite操作驱动dll下载:System.Data.SQLite C#使用SQLite步骤: (1)新建一个project (2)添加SQLite操作...
  • qq_29098553
  • qq_29098553
  • 2017年09月05日 10:57
  • 551

C# 使用SQLite数据库 之 读写数据库

读写数据库并在窗体(Form)中显示其数据,其方式为: 读: Database(SQLite) -> DataAdapter -> DataSet -> DataGridView ...
  • zhenyongyuan123
  • zhenyongyuan123
  • 2012年04月12日 09:13
  • 7886

C#操作Sqlite快速入门

http://www.cnblogs.com/greatverve/archive/2011/04/28/sqlite-start.html Sqlite不需要安装即可使用。 Sqli...
  • lanshengsheng2012
  • lanshengsheng2012
  • 2013年11月20日 12:46
  • 1870

C#对SQLite的常用操作

Author: Kagula Date: 2013-2-18   环境 [1]Visual Studio 2010 Ultimate with SP1 正文 准备工作   从参考资料中下...
  • lee353086
  • lee353086
  • 2013年02月18日 13:53
  • 9450

c# winform sqlite 绑定数据库 设计与使用

初入公司,接手一个半成品改良,用到从未接触过的c#,winform设计,以及数据库绑定操作。 刚交货,写个笔记记录下这10天的学习过程。捡难点讲两点:dataSet设计绑定,installShiel...
  • lpcz2010
  • lpcz2010
  • 2016年01月14日 20:34
  • 1213

C#中使用SQLite数据库简介(下)

【SQLite管理工具简介】 推荐以下2款: Navicat for SQLite:功能非常强大,几乎包含了数据库管理工具的所有必需功能,操作简单,容易上手。唯一的缺点是不能打开由System.D...
  • dalmeeme
  • dalmeeme
  • 2012年01月10日 13:15
  • 4532

C# SQLite开发:创建数据库和表(转载别人)

using System; using System.Collections.Generic; using System.ComponentModel; using System.D...
  • zzzzzzzert
  • zzzzzzzert
  • 2014年07月16日 15:04
  • 10193

连接SQLite数据库源码(C#)

using System; using System.Collections.Generic; using System.ComponentModel; using System.D...
  • a337895179
  • a337895179
  • 2016年12月07日 15:25
  • 682
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#使用SQLite数据库详解
举报原因:
原因补充:

(最多只允许输入30个字)