翼度科技»论坛 编程开发 .net 查看内容

在C#中使用SQLite数据库

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
轻量级桌面程序数据库不太适合用SQLServer、MySQL之类的重量级数据库,嵌入式数据库更好。在对比Access、SQLite、Firebird数据库后发现SQLite较另外两个有较多优点。
环境:.NET Framework 3.5、windows11 64位、Visual Studio 2010.
C#使用SQLite需要从SQLite官网下载DLL组件。
我是windows11,64位的开发环境,最开始下载的64位的,结果运行时报异常。通过查资料,情况比较复杂(参考:https://blog.51cto.com/xxjjing/5804868),遂重新下载了32位的包:sqlite-netFx35-binary-Win32-2008-1.0.117.0下载地址:https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
下载后将包解压放到一个固定目录,需要依赖System.Data.SQLite.dll和SQLite.Interop.dll这两个文件,
在项目里右键项目 > 添加引用 > 选“浏览”选项卡,找到解压后的目录,引入System.Data.SQLite.dll,另一个文件SQLite.Interop.dll不可以通过引用方式添加,必须只能复制文件到运行目录下,通过调试发现程序会自动把System.Data.SQLite.dll也复制到运行目录下,System.Data.SQLite.dll和SQLite.Interop.dll文件会在一起。(尝试过直接复制这两个文件到程序的运行目录下不可行,Visual Studio里不管怎么刷新项目的引用列表都不会出现这两个文件,运行会报错。)
C# 中使用SQLite示例:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Data;
  10. using System.Data.SQLite;
  11. namespace SQLiteTest
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         public Form1()
  16.         {
  17.             InitializeComponent();
  18.         }
  19.         private void Form1_Load(object sender, EventArgs e)
  20.         {
  21.             Console.WriteLine("SQL Lite 数据库试验");
  22.             // 连接数据库,FailIfMissing=false时若文件不存在会自动创建
  23.             string connStr = "Data Source=test.db;Version=3;Pooling=true;FailIfMissing=false;";
  24.             SQLiteConnection conn = new SQLiteConnection(connStr);
  25.             conn.Open();
  26.             //在指定数据库中创建一个table
  27.             string sql = "create table highscores (name varchar(20), score int)";
  28.             SQLiteCommand command = new SQLiteCommand(sql, conn);
  29.             command.ExecuteNonQuery();
  30.             // 插入一些数据
  31.             sql = "insert into highscores (name, score) values ('Me', 3000)";
  32.             command = new SQLiteCommand(sql, conn);
  33.             command.ExecuteNonQuery();
  34.             sql = "insert into highscores (name, score) values ('Myself', 6000)";
  35.             command = new SQLiteCommand(sql, conn);
  36.             command.ExecuteNonQuery();
  37.             sql = "insert into highscores (name, score) values ('And I', 9001)";
  38.             command = new SQLiteCommand(sql, conn);
  39.             command.ExecuteNonQuery();
  40.             // 查询数据
  41.             sql = "select * from highscores order by score desc";
  42.             command = new SQLiteCommand(sql, conn);
  43.             SQLiteDataReader reader = command.ExecuteReader();
  44.             while (reader.Read())
  45.             {
  46.                 Console.WriteLine("Name: " + reader["name"] + "\tScore: " + reader["score"]);
  47.             }
  48.         }
  49.     }
  50. }
复制代码
 更多参考资料:
组件包引用参考:https://blog.csdn.net/wzj0808/article/details/78910457/执行sql参考:https://www.cnblogs.com/LeeSki/p/14381192.html
来源:https://www.cnblogs.com/jsper/archive/2023/04/23/17346758.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具