C# SQLite
- 官网下载https://www.sqlite.org/download.html
各个平台下载的安装包,本次以win10为例,DLL可以根据系统,tool通用
- 解压后将所有文件放在同一个目录下
- 控制台检测
出现版本号就算成功了
-
可以运行【.help】查看相关命令
- 运行命令创建数据库
open命令,当数据库不存在就创建新的
- 执行sql脚本
注:
1、sqlite是动态数据类型,所以你可以不声明字段的类型,但最好还是声明;
2、结束语句加上分号“;”,系统命令无需添加
嵌入C#
- 添加引用
- 附上源码(此源码在.net5下创建)
string connString = "Data Source=netTest.db"; string sql = @"drop table if exists stu; create table stu( name nvarchar(50), age int ); insert into stu values('张三',12); insert into stu values('李四',23); "; string sql2 = "select * from stu"; try { using (SqliteConnection conn = new(connString)) { conn.Open(); SqliteCommand cmd = new(sql, conn); cmd.ExecuteNonQuery(); cmd.CommandText = sql2; SqliteDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Console.WriteLine("name:{0};age:{1}", dr[0], dr[1]); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine("End."); Console.Read();
程序中无需创建数据库,SqliteConnection会自动在程序根目录下创建
- 附上SQLiteHelper
public static class SQLiteHelper { #region 获取连接字符串 /// <summary> /// 获取连接字符串 /// </summary> /// <returns></returns> private static SqliteConnection GetConnection() { try { string db = ConfigurationManager.AppSettings["sqlconn"].ToString(); SqliteConnectionStringBuilder connStr = new SqliteConnectionStringBuilder(); connStr.DataSource = db; connStr.Pooling = true; SqliteConnection conn = new SqliteConnection(connStr.ToString()); return conn; } catch { throw; } } #endregion #region 修改语句 /// <summary> /// 修改语句 /// </summary> /// <param name="sql"></param> /// <param name="commandParameters"></param> /// <returns></returns> public static bool ExecuteNonQuery(string sql, params SqliteParameter[] commandParameters) { try { using (SqliteConnection conn = GetConnection()) { conn.Open(); SqliteCommand cmd = new(sql, conn); if (commandParameters.Length > 0) { foreach (SqliteParameter parm in commandParameters) { cmd.Parameters.Add(parm); } } int resutl = cmd.ExecuteNonQuery(); return resutl > -1 ? true : false; } } catch { throw; } } #endregion #region 查询语句 /// <summary> /// 查询语句 /// </summary> /// <param name="sql"></param> /// <param name="commandParameters"></param> /// <returns></returns> public static DataTable QueryTable(string sql, params SqliteParameter[] commandParameters) { try { using (SqliteConnection conn = GetConnection()) { conn.Open(); SqliteCommand cmd = new(sql, conn); if (commandParameters.Length > 0) { foreach (SqliteParameter parm in commandParameters) { cmd.Parameters.Add(parm); } } SqliteDataReader sdr = cmd.ExecuteReader(); DataTable dt = new(); for (int i = 0; i < sdr.FieldCount; i++) { DataColumn myDataColumn = new DataColumn(); myDataColumn.DataType = sdr.GetFieldType(i); myDataColumn.ColumnName = sdr.GetName(i); dt.Columns.Add(myDataColumn); } while (sdr.Read()) { DataRow myDataRow = dt.NewRow(); for (int i = 0; i < sdr.FieldCount; i++) { myDataRow[i] = sdr[i].ToString(); } dt.Rows.Add(myDataRow); } return dt; } } catch { throw; } } #endregion }
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="sqlconn" value="Data Source=Test.db"/> </appSettings> </configuration>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2020-11-17 在Linux下部署Java的jdk以及tomcat