Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ASP.NET web应用程序中为Windows Mobile创建SQL Compact 3.5数据库?_.net_Asp.net_Compact Framework_Sql Server Ce - Fatal编程技术网

如何在ASP.NET web应用程序中为Windows Mobile创建SQL Compact 3.5数据库?

如何在ASP.NET web应用程序中为Windows Mobile创建SQL Compact 3.5数据库?,.net,asp.net,compact-framework,sql-server-ce,.net,Asp.net,Compact Framework,Sql Server Ce,在ASP.NET web应用程序中,我必须从数据源(SQL Server)为Windows Mobile Compact Framework应用程序动态创建SQL Compact 3.5数据库 我必须创建数据库文件、所需的对象(表…)并用数据填充表。客户端应用程序(Windows Mobile设备)将下载生成的文件 我需要什么先决条件(引用的程序集、安装)-或者:这可能吗?您至少需要System.Data.SqlServerCe程序集。这通常在GAC中,但它可能可用作本地复制的DLL 从那时起,

在ASP.NET web应用程序中,我必须从数据源(SQL Server)为Windows Mobile Compact Framework应用程序动态创建SQL Compact 3.5数据库

我必须创建数据库文件、所需的对象(表…)并用数据填充表。客户端应用程序(Windows Mobile设备)将下载生成的文件


我需要什么先决条件(引用的程序集、安装)-或者:这可能吗?

您至少需要System.Data.SqlServerCe程序集。这通常在GAC中,但它可能可用作本地复制的DLL

从那时起,您可以实例化SqlCeEngine对象并使用CreateDatabase()


下面是VB.NET中的一些内容。

本质上,亨克的答案指向了正确的方向。但也有一些警告。SQLServerCE程序集引发运行时错误

我发现了以下两个有用的链接:

  • (史蒂夫·拉斯克的博客)
  • 杰夫巷旁
要使用程序集,必须调用此方法:

AppDomain.CurrentDomain.SetData("SQLServerEverywhereUnderWebHosting", true)

您需要SQL Compact 3.5 SP1运行时:

然后添加对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
        }
    }
}

你有没有读过斯帕顿的答案?关键是你必须调用一个特殊的方法来让它工作。他所说的真的有效吗?它不再到处被称为SQL Server。