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 ......
dbAccess.js
import System.Data; // we import our data class
import Mono.Data.SqliteClient; // we import our sqlite client
class dbAccess {
// variables for basic query access
private var connection : String;
private var dbcon : IDbConnection;
private ......
1、如何得到最后插入项的自动增长ID值? 对应的C#代码段如下:
using (SQLiteConnection cn = new SQLiteConnection (“data source = Test.db”))
{
cn.Open ();
SQLiteCommand cmd = new SQLiteCommand ......
SQLite Database Browser
SQLite Database browser is a light GUI editor for SQLite databases, built on top of Qt. The main goal of the project is to allow non-technical users to create, modify and edit SQLite databases using a set of wizards and a spreadsheet-like interface.
Downlo ......