Windows phone本地数据库开发之 SQL CE
1.打开MS SQL Management studio 创建一个名为MyDatabase.sdf的数据库文件,为了方便演示就不键入密码了 囧~~

2.打开上一步创建的数据库,新增一个Person表,如下图:

3.利用SqlMetal.exe命令工具生成数据库源码和映射。
该工具位于:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
用法:运行CMD,把SqlMetal拖到命令行控制台,键入一个空格然后输入D:\MyDatabase.sdf /code:MyDatabase.cs 轻巧回车键,这时就会在你的个人文件夹中生成源码

如觉得上面的操作太麻烦,可使用我写的一个小程序生成数据库源码:

下载地址:猛击下载
4.把数据库文件、生成的源码文件 拷进你的解决方案中,并添加System.Data.Linq的引用

5.编译一下发现这货报错了,把下图中的两个构造函数删除即可

6.如需要对数据库进行 增、删、改操作,则需要将数据库复制进独立存储区中。我们可以创建一个DBHelper.cs辅助类,代码如下:
public class DBHelper
{
public void MoveDB()
{
IsolatedStorageFile userStoreForApplication = IsolatedStorageFile.GetUserStoreForApplication();
using (Stream stream = Application.GetResourceStream(new Uri("MyDatabase.sdf", UriKind.Relative)).Stream)
{
if (!userStoreForApplication.FileExists("MyDatabase.sdf"))
{
using (IsolatedStorageFileStream stream2 = userStoreForApplication.CreateFile("MyDatabase.sdf"))
{
byte[] buffer = new byte[1024];
int count = -1;
while ((count = stream.Read(buffer, 0, buffer.Length)) > 0)
{
stream2.Write(buffer, 0, count);
}
}
}
}
}
private static MyDatabase m_Instance = null;
public static MyDatabase Instance // 数据库实例
{
get
{
if(m_Instance == null)
{
m_Instance = new MyDatabase("isostore:/MyDatabase.sdf");
}
return m_Instance;
}
}
}
7.数据的加载
前台:
<ListBox Name="lstPerson"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding Name}"></TextBlock> <TextBlock Text="{Binding Email}"></TextBlock> <TextBlock Text="{Binding Age}"></TextBlock> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
后台:
// 构造函数 public MainPage() { InitializeComponent(); // 程序运行时,执行一遍数据库复制操作 DBHelper.MoveDB(); LoadData(); } // 加载数据 private void LoadData() { var query = from m in DBHelper.Instance.Person select m; lstPerson.ItemsSource = query.ToList(); }
8. 增删改部分:

浙公网安备 33010602011771号