Windows 8 Metro用C#连接SQLite及创建数据库,数据表的增删改查的实现
1.metro中使用sqlite数据库具体步骤如下:
1).下载sqlite for winrt
地址:http://www.sqlite.org/download.html
下载precompiled binaries for windows runtime,这是一个visual studio的一个扩展,文件以vsix为后缀,直接双击运行即可。(如下图)
2).为项目添加引用
创建一个项目,在解决方案在选择“引用->添加引用”,在引用管理器的左边列表中选择windows->扩展,然后再右边的列表中选中如下图所示:
注意:选择 sqlite for windows runtime 和 microsoft visual c++ runtime package
3). 为项目添加c# 驱动
在解决方案中,选择项目,单击右键,选择“管理nuget程序包”,在管理器中进行如下图的操作:
安装完成后,你的项目的根目录下会多出两个文件:sqlite.cs和sqliteasync.cs文件,我们就可以通过这两个类来操作sqlite了。
2.创建数据库
1).首先:声明一个memberinfo类也就是表主键自动增长
{ [sqlite.autoincrement, sqlite.primarykey] public int id { set; get; } public string name { set; get; } public int age { set; get; } public string address { set; get; } }
string path =path.combine(windows.storage.applicationdata.current.localfolder.path, "member.sqlite"); //数据文件保存的位置 using (var db = new sqlite.sqliteconnection(path)) //打开创建数据库和表 { db.createtable<memberinfo>(); } }
{ try { using (var db = newsqliteconnection(path)) { db.insert(data); } } catch(exception e) { throw e; } } publicvoid delete(int id) { try { t data = select(id); using (var db = newsqliteconnection(path)) { db.delete(data); } } catch(exception e) { throw e; } } public void insert(t data) { try { using (var db = newsqliteconnection(path)) { db.insert(data); } } catch(exception e) { throw e; } } publicvoid delete(int id) { try { t data = select(id); using (var db = newsqliteconnection(path)) { db.delete(data); } } catch(exception e) { throw e; } } public memberinfo select(int id) { try { memberinfo data = null; using (var db = newsqliteconnection(path)) { list<object> obj = db.query(newtablemapping(typeof(memberinfo)), string.format("select * from memberinfo where id={0}", id)); if (obj != null&&obj.count>0) { data = obj[0] as memberinfo; } } return data; } catch (exception e) { throw e; } } publicvoid updata(memberinfo data) { try { using (var db = newsqliteconnection(path)) { db.update(data); } } catch(exception e) { throw e; } } publicobservablecollection<memberinfo> selectall() { observablecollection<memberinfo> list = newobservablecollection<memberinfo>(); using (var db =newsqliteconnection(path)) { list<object> query = db.query(newtablemapping(typeof(memberinfo)), "select * from memberinfo"); foreach (var mem in query) { memberinfo info = mem asmemberinfo; list.add(info); } } return list; }
public class memberinfo
2).写一个方法用于创建数据库member.sqlite和表memberinfo
{
3).简单的操作sqlite数据库(增,删,改,查询)
public void insert(memberinfo data)