SQLite 初探
还是初探,做的项目要用到轻巧的本地数据库,于是找了 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,否则,你将只能看到一个空的数据库文件。
相关文档:
.dump ?TABLE? ... 以SQL语句方式显示表的结构。如:
sqlite> .dump websties
BEGIN TRANSACTION;
COMMIT;
sqlite> .dump websites
BEGIN TRANSACTION;
CREATE TABLE [websites] (
[WebID] INTEGER NOT NULL PRIMARY KEY,
[WebName] VARCHAR(20) NULL
);
INSERT INTO "websites" VALUES(1,'CTOChina.net'); ......
一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种数据类型:
1.NULL:空值。
2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。
3.REAL:浮点数字,存储为8-byte IEEE浮点数。
4.TEXT:字符串文本。
5.BLOB:二进制对象。
转自:http://www.cnblo ......
SQLite驱动支持的SQL 列类型
类型描述
TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB, BYTEA
不限制长度的字符串类型. 二进制数据必须安全地编码存储, 见text类型.
CHAR(), VARCHAR(), TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
不限制长度的字符串类型. 不会被截断或者填充
ENUM
不限制长度的字符串类型. 不像 MySQL, 使用 ......
2010年SQLite学习笔记之二
一.建立数据库
sqlite3.exe test.db
二.双击sqlite-3_6_16目录下的程序sqlite3.exe,即可运行
三.退出
.exit
或者
.quit
四.SQLite支持如下5种数据类型
1.NULL:空值。
2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。
3.REAL:浮点数字,存储为8-byte IEEE浮点数 ......