SQLite 初探

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 10:34   11   0

还是初探,做的项目要用到轻巧的本地数据库,于是找了 sqlite 3 试用之,还不错,够轻巧。

上这儿去下载程序和查看文档: http://www.sqlite.org/download.html

这回开发用的是 C#,于是找了个.NET的库 Finisar.SQLite ,到这儿去载 http://adodotnetsqlite.sourceforge.net/

要记的也不是什么大不了的东西,示例网站上都有,就是几点需要注意的地方

1、Finisar.SQLite 包能载到3个动态库 sqlite3.dll、SQLite.dll、SQLite.NET.dll,在.NET工程中对 SQLite.NET.dll 添加引用 代码中就可以 using Finisar.SQLite;,将动态库拷贝至程序运行目录,即可。

2、这个库有类似 DbConnection、DbCommand、DbDataReader 的组件:SQLiteConnection 、SQLiteCommand、SQLiteDataReader,使用也基本相同。

但是我在使用带参数的 SQLiteCommand 时出了点问题,虽然参考了官网的示例 (http://www.devart.com/dotconnect/sqlite/docs/Parameters.html)但没有什么帮助:

问题:

SQLiteCommand myCommand1;
...
myCommand1.CommandText = "INSERT INTO dept (deptno, dname, loc) VALUES (?, ?, ?)";
myCommand1.Parameters.Add("param1", 30);
myCommand1.Parameters.Add("param2", "SALES");
myCommand1.Parameters.Add("param3", "CHICAGO");

总是会报“找不到未命名的参数”

而换另一种做法:
SQLiteCommand myCommand1;
...
myCommand1.CommandText = "UPDATE dept SET dname = :dname, loc = :loc WHERE deptno = @deptno";
myCommand1.Parameters.Add("@deptno", 20);
myCommand1.Parameters.Add("dname", "SALES");
myCommand1.Parameters.Add("loc", "NEW YORK");

插入是能成功,但是数据都为空,真是怪异

最终只好土土的拼个SQL去执行。
3、关于 Data Source=dbfile;Version=3;New=True;Compress=True; 这个连接串。
最需要说明的就是 New=True, 当New=True时,是始终创建新的数据库。
所以当原数据库有内容时,用New=False,否则,你将只能看到一个空的数据库文件。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP