WinPhone开发数据库相关操作总结

1.首先来说下wp对.sqlite数据库的操作支持,从google,百度,codeplex..等等网站找寻到以下方式;

(1)最古老的要数引用第三方Community.CsharpSqlite.WP.dll程序集来使用的(注意:如果你要操作现有存在的.sqlite数据库,而不是自己从头开始创建数据表,添加数据...等,那么你需要在codeplex网站上找到这个源码,进行相应的修改,这样才能够支持使用,不然会碰到很郁闷的"无法打开数据库连接.."之类的错误)

(2)第二种跟第一种有所类似,不过它的封装有所不同C#-SQLiteWP7.Preview1.Release,这个也在Codeplex上面,代码使用跟第一种类似,不过里面的方法有返回DataReader之类的对象,这样方便我们做相应数据读取操作,虽然数据库也是copy到独立存储根目录下的,不过这里的连接字符串有所不同,格式如下:

"Version=数据库版本号,uri=file:你的数据库完整名称"

简单的Code操作流程:

 1 using (SqliteConnection conn = new SqliteConnection("Version=3,uri=file:test.db"))
 2
 3 {
 4
 5 conn.Open();
 6
 7 using (SqliteCommand cmd = conn.CreateCommand())
 8
 9 {
10
11 cmd.CommandText = "sql语句";
12
13 cmd.ExecuteNonQuery();
14
15
16
17 cmd.Transaction = conn.BeginTransaction();
18
19 //sql语句加入参数
20 cmd.CommandText = "INSERT INTO test(col, col2, col3, col4, col5) VALUES(@col, @col2, @col3, @col4, @col5);SELECT last_insert_rowid();";
21
22 cmd.Parameters.Add("@col", null);
23
24 cmd.Parameters.Add("@col2", null);
25
26 cmd.Parameters.Add("@col3", null);
27
28 cmd.Parameters.Add("@col4", null);
29
30 cmd.Parameters.Add("@col5", null);
31
32 cmd.Transaction.Commit();
33
34 cmd.Transaction = null;

(3)如果自己不想改Community.CsharpSqlite.WP这个源码的话,那就在网上找找Vici.CoolStorage.WP7和Vici.Core.WP7这两个程序集,个人感觉这个方式,代码操作简单,性能较第一种好些许;

 1 //注意:先往项目添加Vici.CoolStorage.WP7.dll和Vici.Core.WP7.dll
 2 string fn = "MNSECRET.DB";//您的数据库名称,注意放在项目根目录下,且设置生成操作为Resource,不复制
 3             Assembly assem = Assembly.GetExecutingAssembly();
 4             string assemeblyName=assem.FullName.Substring(0, assem.FullName.IndexOf(‘,‘));
 5             Uri dbURi= new Uri("/" + assemeblyName + ";component/" + fn,
 6       UriKind.Relative);
 7             //程序第一次运行把SQLite数据库Copy到本地存储
 8             StreamResourceInfo sr = Application.GetResourceStream(dbURi);
 9             IsolatedStorageFile iStorage = IsolatedStorageFile.GetUserStoreForApplication();
10             if (!iStorage.FileExists(fn))
11             {
12                 using (var outputStream = iStorage.OpenFile(fn, FileMode.CreateNew))
13                 {
14                     byte[] buffer = new byte[10000];
15                     for (; ; )
16                     {
17                         int read = sr.Stream.Read(buffer, 0, buffer.Length);
18
19                         if (read <= 0)
20                             break;
21
22                         outputStream.Write(buffer, 0, read);
23                     }
24                 }
25             }
26             //连接数据库
27             CSConfig.SetDB(fn);
28             //数据操作
29             CSGenericRecordList cslis = CSDatabase.RunQuery("SELECT* FROM CITY");//可以理解为返回一个表格
30              foreach (CSGenericRecord cs in cslis)
31              {
32                  //取表中的每一行数据
33                  string result= cs["数据表字段名"].ToString();
34
35              }

关于CSDatabase里面的操作方法,大家可以到http://viciproject.com/wiki/Projects/CoolStorage/WindowsPhone这个网站去看看,可能我使用的有些许性能耗损,请大家一起探讨学习

2.第三方.sqlite数据库性能有点问题,这时候就需要用到自带的.sdf数据库了,这里推荐Vs插件SQL Server Compact Toolbox,它可以创建3.5和4.0版本的数据库,注意Wp貌似支持3.5的,之前我用4.0的,结果悲剧了,后来还是靠SQL Server Compact Toolbox重新创建3.5的,导入数据啥的(建议一张张表导入数据,不然Vs会卡死),利用这个工具我们还可以创建表映射的业务对象和数据上下文啥的,大家一起摸索吧

3.最后附上一个之前大学时代做过的wp7.5应用:http://www.windowsphone.com/zh-cn/store/app/%E6%81%B6%E9%AD%94%E6%9E%9C%E5%AE%9E%E5%9B%BE%E9%89%B4/9a491e8f-29b4-499b-a24b-81e3484eb404  大家多多吐槽哈!!!

(当时只是练练数据库操作技术和开发者提交app操作流程...个人感觉这个应用没多大意义)

http://www.silverlightchina.net/html/zhuantixilie/winphone7/2012/0318/14558.html

http://www.oschina.net/translate/generate-windows-phone-8-local-database?print

时间: 2024-08-05 20:09:16

WinPhone开发数据库相关操作总结的相关文章

cakephp v3.4 数据库相关操作

cakephp v3.4 数据库相关操作 查询对象 Query Objectclass Cake\ORM\Query 获取Query object表对象 Table Object 使用find()返回 1.任何情况下都可以从TableRegistry中获取use Cake\ORM\TableRegistry;$articles = TableRegistry::get('Articles');$query = $articles->find(); 2.在对应的控制器中(框架自动就创建了)$que

MFC 对MYSQL数据库相关操作

记得看过有人说,现在的软件基本上都是连着数据库的,如果一个软件没有跟数据库相连,基本没什么作用.虽然这种说法略显片面,但数据库之于软件的重要也是毋庸置疑的. MFC连接数据库应该不算是什么新鲜的命题了,方法是有好几种的,本人试了下,感觉利用MySQL提供的C语言API来进行操作蛮方便的,所以在此记录下相关的操作. 要用MySQL提供的C语言API,首先要包含API的头文件目录,也就是在MFC工程属性中的"包含目录"下添加MySQL安装目录的"include"文件夹.

python中MySQL数据库相关操作

一 安装基本环境: 1 安装MySQL数据库, 本文使用的是mariadb数据库,与MySQL相似 1 挂载镜像文件(本次使用的是本地镜像文件) 2 启动MySQL数据库 3 创建用户名和密码并刷新 grant all(表示所有操作) on .(库.表(所有的,也可以指定)) to [email protected](设置用户名为root,链接为本地链接) identified by 'roiot123';(设置密码)flush privileges;(刷新权限) 4 修改默认字符集: serv

MFC List Control控件添加单元格编辑和单元格下拉列表项以适用于数据库相关操作

作为现代的软件,往往是连着数据库的,而连着和用户方便地操作之间,还有着界面这道坎.MFC是Windows上比较好开发用户界面的框架,然而其自带的控件中没有对于数据库表格支持较好的控件,而使用网上提到的 DataGrid 等控件在本人的win8.1+VS2013平台上老出现找不到控件或者头文件的问题,搞的烦死人.最后想到 List Control 控件只要稍作修改,加上单元格编辑和单元格下拉列表,其实就能和数据库进行良好的对接,一百度,果然有人已经做了这件事,实在是太让人感动了!       

YII 数据库相关操作

CDbConnection:  一个抽象数据库连接 CDbCommand:     SQL statement CDbDataReader:  匹配结果集的一行记录 CDbTransaction:数据库事务 访问数据库前需要建立数据库连接:使用DAO建立一个抽象数据库链接: $connection = new CDbConnection($dsn, $username, $password); $connection->active = true;     // 只有激活了连接才可以使用 $co

YII 数据库相关操作(转)

CDbConnection: 一个抽象数据库连接CDbCommand: SQL statementCDbDataReader: 匹配结果集的一行记录CDbTransaction:数据库事务 访问数据库前需要建立数据库连接:使用DAO建立一个抽象数据库链接: $connection = new CDbConnection($dsn, $username, $password);   $connection->active = true;     // 只有激活了连接才可以使用   $connect

C#数据库相关操作:[1]C#连接SQL数据库(转)

对于学生或程序员而言,一般的编程过程中,基本上都会用到数据库,来保存用户登录信息或其他相关数据,本经验不在于教你什么新的知识,只是将一些零碎的数据库知识统一成册,方便人们查阅. Visual Studio是一个很强大的工具,特别是在C#语言运用越来越广的现在. 工具/原料 Visual Studio 2010 SQL Server 2008 1. 创建测试数据库Test 1 1.1 打开SQL Server管理工具 2 1.2 连接数据库服务器 3 1.3 在左侧视图中右键点击“数据库”,选择“

tp5 数据库相关操作笔记

这里如何连接多个数据库? 1,在conif.php文件中添加一个数据库配置(把database.php文件内容复制一份过来),这里取名为db2 2,在控制器的方法中使用 mysql中的参数绑定 mysql中占位符绑定 增删改查? 1 , 原生增删改查在TP中 直接使用Db::execute('原生语言') 2, 通过查询构造器实现增删改查 2.1 增 注意:如果想利用配置里面的表前缀 2.2 删 2.3 改 2.4 查 建议的查询方式? 特色查询? 1,如果如果某字段存的是时间戳,可以直接按照时

Python:MySQL数据库相关操作

系统环境 Ubuntu 16.04.2 LTS mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper Python 3.5.2 pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5) 查看Python相关模块版本 pip3 pip3 freeze 问题1:安装mysql-connector-python时出现"Unable