如何在 ASP.NET Web 应用程序中为 Windows Mobile 创建 SQL Compact 3.5 数据库?
Posted
技术标签:
【中文标题】如何在 ASP.NET Web 应用程序中为 Windows Mobile 创建 SQL Compact 3.5 数据库?【英文标题】:How to create a SQL Compact 3.5 database for Windows Mobile in an ASP.NET web application? 【发布时间】:2009-07-23 10:17:07 【问题描述】:在 ASP.NET Web 应用程序中,我必须从数据源 (SQL Server) 为 Windows Mobile Compact Framework 应用程序动态创建 SQL Compact 3.5 数据库。
我必须创建数据库文件、需要的对象(表格、...)并用数据填充表格。客户端应用程序(Windows Mobile 设备)将下载生成的文件。
我需要哪些先决条件(引用的程序集、安装) - 或者:这是否可能?
【问题讨论】:
【参考方案1】:您至少需要 System.Data.SqlServerCe 程序集。这通常在 GAC 中,但它可能可用作本地复制的 DLL。
从那里您可以实例化一个 SqlCeEngine 对象并使用 CreateDatabase()
这是 VB.NET 中的一些 CodeProject example code。
【讨论】:
【参考方案2】:基本上,亨克的回答指向了正确的方向。但有一些警告。 SQLServerCE 程序集引发运行时错误。
我发现了这两个有用的链接:
SQL Server Compact Edition under ASP.net and IIS(史蒂夫·拉斯克的博客) Using SQL Compact Edition Under ASP.NET Geoff Lane为了使用程序集,你必须调用这个方法:
AppDomain.CurrentDomain.SetData("SQLServerEverywhereUnderWebHosting", true)
【讨论】:
【参考方案3】:您需要 SQL Compact 3.5 SP1 运行时:
http://www.microsoft.com/downloads/details.aspx?FamilyId=DC614AEE-7E1C-4881-9C32-3A6CE53384D9&displaylang=en
然后添加对 System.Data.SqlServerCe 的引用
以下是一些创建新数据库的示例代码:
using System.Data.SqlServerCe;
public static class SqlCompactServices
public static void CreateDatabase()
string connectionString = "Data Source=file.sdf";
using (SqlCeEngine engine = new SqlCeEngine(connectionString))
engine.CreateDatabase();
using (SqlCeConnection connection = new SqlCeConnection(connectionString))
connection.Open();
// preform queries just like "regular" SQL Server
【讨论】:
您是否费心阅读 splattne 的答案?关键是你必须调用一个特殊的方法才能让它工作。 他放的东西真的有用吗?它不再被称为 SQL Server Everywhere。以上是关于如何在 ASP.NET Web 应用程序中为 Windows Mobile 创建 SQL Compact 3.5 数据库?的主要内容,如果未能解决你的问题,请参考以下文章