最近学习了下sqlite的使用,记录一下。

关于.net中的配置可以看 :数据本地存储方案之SQLite:http://www.cnblogs.com/luminji/archive/2010/12/19/1910396.html

这篇文字说的很详细。

首先

sqlite数据库本身是一个文本文件,所以不用考虑服务器上或者客户端要安装什么工具的问题,一般相对与access比较的话,就是access要安装了才能够用。

其次

sqlite的管理工具很多,网上搜一下很多,sqlitestudio是个轻量级的管理工具,我用Navicat for SQLite。当然还有其他的管理工具,凭个人喜好。

接着

开始贴代码,

关于SQLiteHelper类,我比较懒,抄的上面那个链接的,但是还是贴出来.

SQLiteHelper public class SQLiteHelper{/// <summary>/// ConnectionString样¨´例:阰Datasource=Test.db3;Pooling=true;FailIfMissing=false/// </summary>public static string path = System.AppDomain.CurrentDomain.BaseDirectory + "Dal\\x2010.dll";public static string ConnectionString = "Data Source="+path+";Pooling=true;FailIfMissing=false";private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, params SQLiteParameter[] p){if (conn.State != ConnectionState.Open)conn.Open();cmd.Parameters.Clear();cmd.Connection = conn;cmd.CommandText = cmdText;cmd.CommandType = CommandType.Text;cmd.CommandTimeout = 30;if (p != null){foreach (object parm in p)//cmd.Parameters.AddWithValue(string.Empty, parm);cmd.Parameters.Add(parm);}}public static DataSet ExecuteQuery(string cmdText, params SQLiteParameter[] p){using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)){using (SQLiteCommand command = new SQLiteCommand()){DataSet ds = new DataSet();PrepareCommand(command, conn, cmdText, p);SQLiteDataAdapter da = new SQLiteDataAdapter(command);da.Fill(ds);return ds;}}}public static int ExecuteNonQuery(string cmdText, params SQLiteParameter[] p){using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)){using (SQLiteCommand command = new SQLiteCommand()){PrepareCommand(command, conn, cmdText, p);return command.ExecuteNonQuery();}}}public static SQLiteDataReader ExecuteReader(string cmdText, params SQLiteParameter[] p){using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)){using (SQLiteCommand command = new SQLiteCommand()){PrepareCommand(command, conn, cmdText, p);return command.ExecuteReader(CommandBehavior.CloseConnection);}}}public static object ExecuteScalar(string cmdText, params SQLiteParameter [] p){using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)){using (SQLiteCommand command = new SQLiteCommand()){PrepareCommand(command, conn, cmdText, p);return command.ExecuteScalar();}}}

老一套,关于增删改查:

在数据库中建立的一个表:

sqlCREATE TABLE "tb_nodes" (
"id"  INTEGER,
"fid"  INTEGER,
"NodeName"  TEXT(50),
"Remark"  TEXT(500),
PRIMARY KEY ("id" ASC)
);

/// <summary>/// 添ャィェ加ó一?条?数簓据Y/// </summary>/// <param name="node"></param>/// <returns></returns>public int NodeAdd(Model.Nodes node){if (node != null){string sql = "insert into tb_Nodes(fid,NodeName,Remark) values (@fid,@NodeName,@Remark);select last_insert_rowid();";SQLiteParameter[] parameter = {new SQLiteParameter("@fid",node.fid),new SQLiteParameter("@NodeName",node .NodeName),new SQLiteParameter("@Remark",node .Remark)};object i = Dal.SQLiteHelper.ExecuteScalar(sql, parameter);if (i != null)return Convert.ToInt16(i);elsereturn 0;}elsereturn 0;}/// <summary>/// 修T改?一ー?条?数簓据Y/// </summary>/// <param name="node"></param>/// <returns></returns>public int NodeUpdate(Model.Nodes node){if (node != null){string sql = "update tb_Nodes set fid=@fid,NodeName=@NodeName,Remark=@Remark where id=@id ";SQLiteParameter[] parameter = {new SQLiteParameter("@id",node.id ),new SQLiteParameter("@fid",node.fid),new SQLiteParameter("@NodeName",node .NodeName),new SQLiteParameter("@Remark",node .Remark)};int i = Dal.SQLiteHelper.ExecuteNonQuery(sql, parameter);return i;}elsereturn 0;}/// <summary>/// 删ヲ?除yid为aNodeId的?数簓据Y/// </summary>/// <param name="NodeId"></param>/// <returns></returns>public int NodeDelete(int NodeId){string sql = "delete from tb_Nodes where id=@NodeId";SQLiteParameter[] parameter = { new SQLiteParameter("@NodeId",NodeId)};int i= Dal.SQLiteHelper.ExecuteNonQuery(sql,parameter);return i;}

是不是发现和sql server的操作很相似呢。

有个错误操作:
在操作的时候如果数据库没有的话,它会自动的为你建立一个数据库,当数据库访问路径名不小心写错的时候,由于被新建了一个数据库,不会抛出数据库不存在的错误 ,会抛出 no such table: [tableName] 的错误

转载于:https://www.cnblogs.com/ac1985482/archive/2010/12/27/1917997.html

在.net中使用sqlite相关推荐

  1. Swift 中使用 SQLite——批量更新(事务处理)

    本文是Swift 中使用 SQLite系列的收官之作,介绍一下在数据库中的批量更新. 事务 在准备做大规模数据操作前,首先开启一个事务,保存操作前的数据库的状态 开始数据操作 如果数据操作成功,提交事 ...

  2. Swift 中使用 SQLite——打开数据库

    关于Swift中使用SQLite,接下来可能会分别从打开.增.删.改.查,几个方面来介绍SQLite的具体使用,这一篇重点介绍一下如何打开. 定义全局数据库访问句柄 /// 全局数据库访问句柄 pri ...

  3. 在 Android 应用程序中使用 SQLite 数据库以及怎么用

    part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...

  4. sqlite学习笔记7:C语言中使用sqlite之打开数据库

    数据库的基本内容前面都已经说得差点儿相同了.接下看看如何在C语言中使用sqlite. 一 接口 sqlite3_open(const char *filename, sqlite3 **ppDb) 打 ...

  5. python用sqlite数据库,python 中使用sqlite数据库

    sqlite3是使用文件作为数据库,它属于轻量级数据库,支持在多平台下使用. SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它是遵守A ...

  6. Android中实现SQLite数据库CRUD操作的两种方式

    Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...

  7. cocos2d-x 3.0rc2中读取sqlite文件

    cocos2d-x 3.0rc2中读取sqlite文件的方式,在Android中直接读取软件内的会失败.须要复制到可写的路径下 sqlite3* dbFile = NULL;std::string p ...

  8. 在C#中使用SQLite

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

  9. uwp连接mysql数据库_在 UWP 应用中使用 SQLite 数据库

    在 UWP 应用中使用 SQLite 数据库Use a SQLite database in a UWP app 06/26/2020 本文内容 可以使用 SQLite 在用户设备上的轻量级数据库中存 ...

  10. 【转】在C#中使用SQLite

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

最新文章

  1. 从FFmpeg 4. 2源码中提取dshow mjpeg code步骤
  2. 第2题——DNA片段
  3. 主成分分析(PCA)——以2维图像为例
  4. 2021-04-24 Python 最小二乘法求解线性回归模型
  5. Zookeeper集群搭建分布式
  6. Android studio2.3.1 更新以后Error:Failed to open zip file. Gradle's dependency cache may be corrupt
  7. QUIC报文格式详解
  8. python ioc di_PHP的依赖注入(DI) 和 控制反转(IoC)
  9. 微软发布Azure Pipelines,开源项目可无限制使用CI/CD
  10. #3771. Triple 生成函数 + FFT + 容斥
  11. java 内存 堆 栈 方法区 常量池
  12. 同事:你居然还在用 try catch 处理异常? 有点Low啊
  13. 文献管理工具全家桶(引文网络,追踪,管理,多平台同步,快速下载)
  14. MD5 加密算法详解
  15. python怎么判断质数和合数_什么是质数和合数以及判断方法介绍
  16. 9.2. switchport trunk encapsulation dot1q 提示 invaild input at^marker.
  17. LY68L6400SLIT 编带
  18. 张一鸣王欣罗永浩组团“围剿”微信 但马化腾却很放心
  19. FullCalendar demo实例
  20. 西蒙斯都在用的量化选股策略——风格轮动模型

热门文章

  1. mut a:T 和a:mut T的区别
  2. 【区块链】Decentraland 挖矿教学
  3. (转)Fintech路上券商究竟做错了什么?漏做了什么?
  4. 阿里巴巴CTO程立:双11的再进化
  5. 阿里云 Link ID² 标准项目获浙江省标准创新重大贡献奖
  6. 官宣!什么是新基建时代的混合云? | 凌云时刻
  7. 王者服务器维护11月,11月17日体验服停机更新公告
  8. 【心电信号】基于matlab Simulink胎儿心电信号提取【含Matlab源码 1550期】
  9. 【电力负荷预测】基于matlab遗传算法优化BP神经网络电力负荷预测【含Matlab源码 1524期】
  10. python美多商城项目百度网盘_美多商城项目(十)