一直想找个ms access的替代品。终于找到了sqlite.
据说firefox也是用的这个数据库,效率也很高,并且跨平台,支持多种语言,文件型(官方文档说支持内存数据库).
相关语法:
(1)top-> limit
select categoryId from Categories limit 5
.NET相关:
.NET下需要下载 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
System.Data.SQLite.dll(分多个版本32位、64位,.NET2.0-.NET4.5)
System.Data.SQLite.Linq.dll(可选,不知道如何用)
将dll添加引用到项目中即可。
View Code
const string connectingString = "Data Source=northwindEF.db"; using (SQLiteConnection cnn = new SQLiteConnection(connectingString)) { cnn.Open(); var cmd = cnn.CreateCommand(); cmd.CommandText = "select count(*) from Categories"; object count = cmd.ExecuteScalar(); Console.WriteLine(count); }
如需支持linq,可以尝试DbLinq.
需要添加引用:
DbLinq.dll
DbLinq.Sqlite.dll
添加模型文件需通过工具DbMetal.exe
DbMetal.exe --database=northwind --provider=sqlite --conn="Data Source=northwindEF.db" --dbml=test.dbml 或
DbMetal.exe --database=northwind --provider=sqlite --conn="Data Source=northwindEF.db" --cs=test.cs
注:需要添加【System.Data.SQLite.dll】到DbMetal.exe目录,才能成功执行此命令.
View Code
using (var context = new NorthWind(new SQLiteConnection(connectingString))) { context.ObjectTrackingEnabled = true; context.Log = Console.Out; var ca = (from p in context.Categories select p) .FirstOrDefault(); ca.CategoryName = ca.CategoryName + "new"; context.SubmitChanges(); Console.WriteLine("update"); }