Window Phone中使用本地数据库SQLCE的简单入门

来源:互联网 发布:湖北快三数据 编辑:程序博客网 时间:2024/04/30 22:44
WP7 地数据库SQLCE 
window phone 7.1的SDK已经内置了SQLCE引擎,我们就完全可以使用SQLCE关系数据库为我们的应用程序的管理存储数据。

在window phone操作SQLCE主要使用linq to sql的技术知识,如果你对linq to sql比较熟悉,那么用sqlce是很简单,
我对linq to sql不太熟悉,一边学一边操作了
当然在window phone上的linq to sql 有很多限制,功能有很多弱化,原生态的SQL语句是不被支持,等等其他
另外window phone项目必须添加对LInq的动态链接库引用(system.data.linq)

我的主要学习参考资料在下面,目前主要简单学习操作数据库和数据的添加,删除,修改,查找。当然还有很多比较复杂的数据操作我还没深入学习,
这个文章当作入门引子吧

一个第三方的系列文章,推荐先看这个
http://windowsphonegeek.com/tips/Windows-Phone-Mango-Local-Database(SQL-CE)-Introduction
这是微软官方的文档,某些语法或者方法,属性详细查找应该在这里查找
http://msdn.microsoft.com/en-us/library/ff626522%28v=vs.92%29.aspx


一。数据表和数据库的定义

定义一个Country数据类,也就是数据库中的表,linq会保持映射关系
上面的标签属性很简单,看一下就明白了,
  1. [Table(Name="Country")]
  2.     public class Country
  3.     {
  4.         [Column(IsPrimaryKey=true,IsDbGenerated=true)]//指定是主键,而且是自增的
  5.         public int CountryID
  6.         {
  7.             get;
  8.             set;
  9.         }
  10.         [Column(CanBeNull = true, DbType = "NVarChar(100) not null")]//定义了数据类型
  11.         public string CountryName
  12.         {
  13.             get;
  14.             set;
  15.         }
  16.     }
定义数据上下文,也可以认为就是数据库关系
必须继承DataContext,下面的定义表面这个数据库中有一个表Country。
connectionString这是链接字符串
  1. public class WPContext : DataContext
  2.     {
  3.         public WPContext(string connectionString)
  4.             : base(connectionString)
  5.         {
  6.         }

  7.         public Table<Country> Countries
  8.         {
  9.             get
  10.             {
  11.                 return this.GetTable<Country>();
  12.             }
  13.         }
  14.     }
二。在程序中创建数据上下文,也就是数据库
传统上创建或者链接数据库都离不开连接字符串,window phone也一样,语法稍微有点变化
isostore是关键字表面是在独立存储区域内,sdf就是数据库文件
string connectionString = "Data Source='isostore:/file.sdf'";
这个语法指定了文化特性
private const string ConnectionString = @"Data Source = CountryDB.sdf'; Culture Identifier = fr-FR; Case Sensitive = true;";

这个语法指定了加密的密码
private const string ConnectionString = @"Data Source='isostore:/CountryDB.sdf';Password='MyPassword';";

下面的代码就创建了file数据库。
定义自己的WPContext 的时候一定要内部有表数据,



  1. string connectionString = "Data Source='isostore:/file.sdf'";
  2. using (WPContext context = new WPContext(connectionString))
  3. {
  4. //context.DeleteDatabase();
  5. if (!context.DatabaseExists())
  6. {
  7. context.CreateDatabase();
  8. }
  9. }
创建数据上下文以后就可以对Country表进行数据操作。
所有的操作必须在数据上下文环境中进行,也就是using语法的闭合内
数据添加
              
  1. Country model = new Country();
  2. model.CountryName = "China2";
  3. context.Countries.InsertOnSubmit(model);

  4. context.SubmitChanges();
数据查询
  1. IQueryable<Country> query = from c in context.Countries select c;
  2. IList<Country> temp = query.ToList();
数据查找,更新和删除
              
  1. IQueryable<Country> query2 = from c in context.Countries where c.CountryID==1 select c;
  2. Country c2 = query2.FirstOrDefault();
  3. c2.CountryName = "update By";
  4. context.SubmitChanges();
  5.          //删除
  6.                 context.Countries.DeleteOnSubmit(c2);
  7.                 context.SubmitChanges();
以上代码在模拟器中可以顺利运行。

以上学习和代码都是比较简单入门,更复杂的应用还有待继续研究!
原创粉丝点击