c#调用sqlite总结

一、准备工作

下载System.Data.SQLite.dll,网址 System.Data.SQLite: Downloads Page

如下图所示  以32bit ,net4.6为例:有两个版本

1.第一个sqlite-netFx46-binary-Win32-2015-1.0.110.0.zip解压后要用SQLite.Interop.dll 和System.Data.SQLite.dll

2.第二个sqlite-netFx46-binary-bundle-Win32-2015-1.0.110.0.zip解压后只用System.Data.SQLite.dll 

二、新建工程添加System.Data.SQLite.dll 

  1. 新建一个C#工程
  2. 项目右击—>>添加—>>引用—>>浏览—>>选择System.Data.SQLite.dll—>>确定

注意:如果添加的是sqlite-netFx46-binary-x64-2015-1.0.110.0.zip解压后System.Data.SQLite.dll,还要将SQLite.Interop.dll复制到编译生成的exe目录下,该dll只能复制,不能添加引用!!!

三、部分函数说明

  • 创建数据库文件

    只是创建一个空白文件

static public Boolean CreateDB(string dbPath)
{
    try
    {
        if (System.IO.File.Exists(dbPath)){
           MessageBox.Show("新建数据库文件" + dbPath + "文件已存在!", "警告", MessageBoxButtons.OK);                    
        }
        else {
             SQLiteConnection.CreateFile(dbPath);
        }
        return true;
     }
     catch (Exception ex)
     {
        throw new Exception("新建数据库文件" + dbPath + "失败:" + ex.Message);
     }
}
  • 除数据库文件

   只是删除文件

static public Boolean DeleteDB(string dbPath)
{
  try
  {
      if (System.IO.File.Exists(dbPath))
      {
         System.IO.File.Delete(dbPath);
      }
      return true;
  }
  catch (Exception ex)
  {
     throw new Exception("新建数据库文件" + dbPath + "失败:" + ex.Message);
  }
}
  • 建表
static public void CreateTable(string dbPath, string tableName, string table)
{

  SQLiteConnection sqliteConn = new SQLiteConnection("data source=" + dbPath);
  if (sqliteConn.State != System.Data.ConnectionState.Open)
  {
     sqliteConn.Open();
     SQLiteCommand cmd = new SQLiteCommand();
     cmd.Connection = sqliteConn;
     //cmd.CommandText = "CREATE TABLE " + tableName + "(Name varchar,Team varchar, Number varchar)";
     cmd.CommandText = "CREATE TABLE IF NOT EXISTS " + tableName+"("+ table + ")";
     cmd.ExecuteNonQuery();
  }
  sqliteConn.Close();
}
  • 删除表
static public void DeleteTable(string dbPath, string tableName)
{
    SQLiteConnection sqliteConn = new SQLiteConnection("data source=" + dbPath);
    if (sqliteConn.State != System.Data.ConnectionState.Open)
    {
        sqliteConn.Open();
        SQLiteCommand cmd = new SQLiteCommand();
        cmd.Connection = sqliteConn;
        cmd.CommandText = "DROP TABLE IF EXISTS" + tableName;
        cmd.ExecuteNonQuery();
     }
     sqliteConn.Close();
}

其余增删改查可以参考上面建表删除表修改SQL语句实现。

cmd.CommandText = "SQL"

例程:c#-sqlite.zip-SQLite文档类资源-优快云下载

### 如何在 C#调用 SQLite 数据库 以下是关于如何在 C#调用 SQLite 数据库的详细说明: #### 1. 安装必要的组件 为了能够在 C# 应用程序中使用 SQLite,需要先安装 SQLite 的相关依赖项。这通常通过 NuGet 包管理器完成。打开 Visual Studio 并按照以下步骤操作: - 菜单栏选择 `工具` -> `NuGet 包管理器` -> `管理解决方案的 NuGet 包`。 - 在搜索框中输入 `System.Data.SQLite` 或者其他支持 ADO.NET 的 SQLite 驱动包名称,并进行安装[^4]。 #### 2. 设置连接字符串 连接到 SQLite 数据库的核心在于配置正确的连接字符串。可以将此字符串存储在应用程序的配置文件(如 appsettings.json)或者直接硬编码于代码中。例如,在 JSON 文件中定义如下内容: ```json { "ConnectionStrings": { "StudentDbConnectionString": "Data Source=student.db" } } ``` 上述示例表示数据库名为 `student.db`,默认会保存在项目的根目录下。如果希望指定绝对路径,则可改为 `"Data Source=C:\\Users\\Desktop\\student.db"`[^2]。 #### 3. 创建基本的数据访问类 下面展示了一个简单的例子,演示如何执行 CRUD (Create, Read, Update, Delete) 操作: ```csharp using System; using System.Data.SQLite; class Program { static void Main() { string connectionString = "Data Source=example.db"; using (var connection = new SQLiteConnection(connectionString)) { connection.Open(); CreateTable(connection); InsertRecord(connection); QueryRecords(connection); UpdateRecord(connection); DeleteRecord(connection); Console.WriteLine("All operations completed."); } } private static void CreateTable(SQLiteConnection conn) { var commandText = @"CREATE TABLE IF NOT EXISTS Users ( Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT NOT NULL);"; ExecuteCommand(conn, commandText); } private static void InsertRecord(SQLiteConnection conn) { var commandText = "INSERT INTO Users(Name) VALUES('John Doe');"; ExecuteCommand(conn, commandText); } private static void QueryRecords(SQLiteConnection conn) { var commandText = "SELECT * FROM Users;"; using (var cmd = new SQLiteCommand(commandText, conn)) { using (var reader = cmd.ExecuteReader()) { while (reader.Read()) Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]} "); } } } private static void UpdateRecord(SQLiteConnection conn) { var commandText = "UPDATE Users SET Name='Jane Doe' WHERE Id=1;"; ExecuteCommand(conn, commandText); } private static void DeleteRecord(SQLiteConnection conn) { var commandText = "DELETE FROM Users WHERE Id=1;"; ExecuteCommand(conn, commandText); } private static void ExecuteCommand(SQLiteConnection conn, string sqlQuery) { using (var cmd = new SQLiteCommand(sqlQuery, conn)) { cmd.ExecuteNonQuery(); } } } ``` 以上代码片段展示了完整的流程,包括创建表、插入记录、读取数据以及修改和删除操作[^3]。 #### 总结 通过上述方法可以在 C# 环境下调用 SQLite 数据库,从而实现轻量级的应用开发需求。确保所有依赖已正确定义并加载成功之后再运行应用逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值