WinRT / Metro应用程序的本地数据库存储

时间:2012-02-18 15:38:32

标签: database windows-runtime windows-store-apps microsoft-metro local-storage

我试图在WinRT中找到一个API,它允许我创建一个本地数据库,可用于存储偶尔连接的应用程序的数据。我正在寻找像SQL Compact Edition这样的东西。

我在各种电路板上看到了各种消息,表明存在

  • (a)将不会是任何本地数据库
  • (b)没有本地“服务器”数据库(即SQL Express类型实例)
  • (c)名为“Jet Blue”的本地数据库代码。

有人对此有明确的答案吗?如果它被封锁,我不想开始这条路。

6 个答案:

答案 0 :(得分:6)

现在正式支持SQLite。有关详细信息,请参阅Tim Heuer's blog。对于数据较少的简单解决方案,您可以使用http://winrtdatabase.codeplex.com/

答案 1 :(得分:4)

您可能希望查看SQLite3-WinRT,我们编写的SQLite包装器,以便在Metro风格的应用程序中使用它。它包含一个仅使用与WinRT兼容的API的SQLite版本,以及一个在C#和JavaScript应用程序中使用它的WinRT组件。

答案 2 :(得分:3)

Metro没有可用的SQL CE。

a)不会是本地数据库

事实并非如此。 SQLite应该能够在WinRT上运行。您可以下载代码here并将两个主要文件包含在WinRT项目中。要编译并通过认证,您需要确保使用不受支持的Win32调用的正确WinRT替换调用。 Bob提到的第三方解决方案是WinRT包装器,它不包括对SQLite的更改以通过认证。

(b)没有本地“服务器”数据库(即SQL Express类型实例)

似乎不太可能有地铁的SQL Express。

(c)名为“Jet Blue”的本地数据库代码。

如果您的意思是Microsoft Jet数据库引擎,似乎支持,但我宁愿使用SQLite。

另外请记住,如果您使用的是HTML / JS,则可以选择使用IndexedDB

答案 3 :(得分:0)

有第三方解决方案即将推出或已经淘汰。 CodePlex有一个 - http://sqlwinrt.codeplex.com/

另一个需要您工作的选项是通过Web服务代理您的数据库访问。

答案 4 :(得分:0)

根据这个没有(内置)数据库 http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-930C

答案 5 :(得分:0)

您真的需要“为偶尔连接的应用程序存储数据”吗?这听起来有点矫枉过正。为什么不自己将数据(各种选项)序列化为存储?