如何在 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 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET Web API 中为 Json.NET 设置自定义 JsonSerializerSettings?

如何在 ASP.NET MVC 网站中为 cookie 设置“安全”标志?

如何在 ASP.Net Web API 中为特定控制器启用 Windows 身份验证

在 NET 5 asp.net 核心 Web 应用程序中为 Kestrel 启用 Windows 身份验证

在 Azure 中为 ASP.NET Core Web 应用设置 SQL 连接字符串

如何在本地 IIS 而非 Express 中调试 ASP.NET 5 Web 应用程序