作者:杨海龙
Andorid
大家都很清楚,它使用的是轻巧、小型的数据库
Sqlite
。而
Windows Phone 7
到目前为止我还没有发现它可以使用数据库为自己的应用程序做数据存储的功能。如果碰到要存取比较多的数据时,很明显独立存储空间
IsolatedStorage
就有点力不从心了。
第一篇将介绍如何使用利用
IsolatedStorage
的特性伪实现创建数据库和判断数据库是否存在。
创建数据库
由于该开源类库是利用
IsolatedStorage
的基础封装的一个数据操作,创建数据库也是遵循了它的使用方法,只是该作者将其封装在了内部,看起来就跟我们实现使用关系型数据库差不多,具体创建数据库代码为:
///
<summary>
///
创建数据库
///
</summary>
private
void
CreateDBTest() { var name = Guid.NewGuid().ToString();
//
使用
Guid
得到一个
name
if
(Database.CreateDatabase(name) !=
null
)
//
创建数据库
{
this
.CreateDatabaseTestLabel.Foreground =
new
SolidColorBrush(Colors.Green); }
else
{
this
.CreateDatabaseTestLabel.Foreground =
new
SolidColorBrush(Colors.Red); } Database.DeleteDatabase(name); //
通过上面
Guid
生成的名称删除数据库
}
如上代码,调用
Database.CreateDatabase
是使用它的构造函数
private Database(string databaseName, string password, bool useLazyLoading)
参数一:数据库名称,参数二:数据库密码,上面的代码不给密码则为空,参数三:是否允许延迟加载。
举报
引用
lihe
帖子 : 28
加入日期 : 2010.09.14 14:17 GMT+8
地点 : 中国
【WP7进阶】伪数据实现之创建数据库(一)
发表在 2011.03.02 11:03 GMT+8
评估该帖
判断数据库是否存在
如果你创建了一个数据库,那么你就会想看看我们刚才创建的数据库是否存在。
Android
可以通过
DDMS
查看,而此开源类库是使用的
IsolatedStorage
。大家都知道微软是不允许让开发者查看
IsolatedStorage
文件的。
---“
虽然有一款工具叫
IsolatedStorage Explorer
,可以查看
IsolatedStorage
文件
”
,在这里先不谈。要查这个数据库是否己经创建完成,就要使用下面的代码了:
///
<summary>
///
验证数据库是否存在
///
</summary>
private
void
DatabaseExists() { var name = Guid.NewGuid().ToString();
//
使用
Guid
得到一个
name
if
(Database.DoesDatabaseExists(name) ==
false
) { var db = Database.CreateDatabase(name);
//
创建数据库返回一个
DataBase
对象
db.Save();
//
调用
IsolatedStorage
保存
if
(Database.DoesDatabaseExists(name) ==
true
)
//
根据名称查询如果存在即返回真
{
this
.DatabaseExistsLabel.Foreground =
new
SolidColorBrush(Colors.Green); }
else
{
this
.DatabaseExistsLabel.Foreground =
new
SolidColorBrush(Colors.Red); } }
else
{
this
.DatabaseExistsLabel.Foreground =
new
SolidColorBrush(Colors.Red); } Database.DeleteDatabase(name);//
通过上面
Guid
生成的名称删除数据库
}
其中该验证数据库是否存在的代码为:
public
static
bool
DoesDatabaseExists(
string
databaseName) {
bool
returnValue =
false
;
using
(IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) {
string
[] files = store.GetFileNames();
if
(files !=
null
&& files.Length >
0
&& files[
0
] !=
null
) { returnValue = (from aFile
in
files
where
aFile == databaseName select aFile).Any(); } }
return
returnValue; }
代码简单,有写
IsolatedStorage
经验的朋友,相信一看便明白。