`
cloudtech
  • 浏览: 4606302 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Silverlight之Window Phone 中SqlCE应用(17)

 
阅读更多

Window Phone 中SqlCE应用
概述
SqlCE应用用于,手机客户端存储少量数据。
1.定义两个表Person,Company
1)Person.cs
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Data.Linq.Mapping;

namespace PhoneApp1.SQLCE数据库
{
[Table]
public class Person
{
[Column(IsPrimaryKey=true,IsDbGenerated=true)]
public int Id { get; set; }

[Column]
public string Name { get; set; }
[Column]
public int Age { get; set; }
[Column]
public double Heigt { get; set; }

[Column(CanBeNull=true)]
public double Weight { get; set; }
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Data.Linq.Mapping;

namespace PhoneApp1.SQLCE数据库
{
[Table]
public class Company
{
[Column(IsPrimaryKey=true,IsDbGenerated=true)]
public int Id { get; set; }

[Column]
public string Name { get; set; }

[Column]
public string Address { get; set; }

[Column]
public bool IsTianChao { get; set; }
}
}

2.定义一个数据库MyDB.sdf,把数据库放独立存储中
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Data.Linq;

namespace PhoneApp1.SQLCE数据库
{
public class MyDataContext:DataContext
{
public MyDataContext()
: base("Data Source='isostore:/MyDB.sdf'")
{
}

public Table<Person> Persons
{
get
{
return GetTable<Person>();
}
}

public Table<Company> Companies
{
get
{
return GetTable<Company>();
}
}
}
}


3.用程序初始化创建数据库
MyDataContext dbCtx = new MyDataContext();
//dbCtx.DeleteDatabase();
//如果数据库不存在,则创建数据库
if (!dbCtx.DatabaseExists())
{
dbCtx.CreateDatabase();
}
4.应用
1)插入数据
using (MyDataContext ctx = new MyDataContext())
{
Person p1 = new Person();
p1.Age = DateTime.Now.Second;
p1.Name = Guid.NewGuid().ToString().Substring(3, 8);
p1.Heigt = 180;

ctx.Persons.InsertOnSubmit(p1);
ctx.SubmitChanges();//提交修改

//p1.Name = 30;
}
2)查询数据
using (MyDataContext ctx = new MyDataContext())
{
listBox1.ItemsSource = ctx.Persons;

//IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();
//isf.IncreaseQuotaTo(//可以对独立存储控件扩容
}
3)修改数据
using (MyDataContext ctx = new MyDataContext())
{
//修改
Person p1 = ctx.Persons.First();
p1.Name = "张三";
ctx.SubmitChanges();
}
4)删除数据
using (MyDataContext ctx = new MyDataContext())
{
//删除
Person p1 = ctx.Persons.First();
ctx.Persons.DeleteOnSubmit(p1);
ctx.SubmitChanges();
}
5.总结
建表(字段),建库(放独立存储中),应用(增,删,该,查)。只能用Ling操作数据。可以看做是对文件的操作。
像操作数据库一样操作文件。切记不要把SqlCE看做成像SQL Server一样的数据库。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics