这周真的是被C#的三次实验整的欲仙欲死......
尤其是数据库方面....
那么今天我就来讲一讲有关sqlite在windows store app,windows phone,这两个平台该如何使用吧...(感觉简单的就像X了狗)
1.首先说说windows store app和windows phone吧(自我感觉这两个除了布局需要重新写..其他代码都可以共享
首先..windows是不会自带sqlite的...
所以在用之前要经过下面几个步骤:
1)工具->拓展与更新
点联机,然后在右上搜索sqlite
下载并安装这两个打钩的东西...然后重启vs
2)项目->管理NuGet程序包
再联机搜索sqlite
安装aqlite-net....然后会神奇的发现项目里多了两个文件
然后右键项目->添加->引用->拓展
把这两项挑上勾,确定..然后发现引用里面多了这两个东西....
但是..还差最后最关键的一步....
3)右键项目->属性->生成
把目标平台的AnyCPU改为X64
这样准备工作就做好啦~
2.sqlite在windows store app和windows phone应用上的使用方法
这个用起来真的是相当的无脑...
首先是要建一个把要存进数据库的数据打包的类
public class Affair { [SQLite.AutoIncrement , SQLite.PrimaryKey] public int Id { set; get;} public string name { set; get; } public string content { set; get; } public DateTime date { set; get;} public int importance { set; get; } public int year { set; get; } public int month { set; get; } public int day { set; get; }
}
首先所有成员必须是public ,否则会报错
然后给这个类加一个主键(就是上述代码中括号的功能)
然后就是连接数据库并建表啦
private SQLiteConnection database;
public void init()
{
string DbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, fileName + ".sqlite"); database = new SQLite.SQLiteConnection(DbPath); database.CreateTable<Affair>();
}
如果文件不存在,会新建一个文件并打开,如果表已存在建表操作就会作废.....
createTable<>()尖括号中填之前建的类,这样表就建好了(是不是感觉和非内嵌数据库比起来太简单了!!!!!!!
插入删除操作
//插入
public void insert ( Affair affair ) { init(); database.Insert<Affair>( affair ); database.SaveTransactionPoint(); database.Close(); }
//删除
public void delete ( Affair affair ) { init(); database.Delete<Affair>( affair ); database.SaveTransactionPoint(); database.Close(); }
SaveTransationPoint()是保存断点....不写的话可能会出现存不上或者没删掉的现象...
查找操作
public SQLite.TableQuery<Affair> Select ( int year ) { init(); return database.Table<Affair>().Where(x => x.year == year ); }
这样就返回了一个table<Affair>的对象....里面是所有满足条件的Affair的集合
var table = db.query(2013); foreach(var item in table) { .......... }
像这样就可以对查找出来的东西进行各种操作啦...(是不是感觉特别简单...这是研究了4天4夜的成果啊23333