无法在 Visual Studio 2012 的 asp.net 中使用 sql server ce 4.0

Posted

技术标签:

【中文标题】无法在 Visual Studio 2012 的 asp.net 中使用 sql server ce 4.0【英文标题】:Can't use sql server ce 4.0 in asp.net in visual studio 2012 【发布时间】:2013-09-02 06:58:40 【问题描述】:

一开始它写了这个异常:

“SQL Server Compact 不适用于 ASP.NET 开发。”

然后我补充说:

AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true);

到 Global.aspx 并修复它。

但是现在当我尝试打开 SqlCeConnection 时,它给了我这个异常:

不兼容的数据库版本。如果这是一个兼容的文件,运行 修理。对于其他情况,请参阅文档。 [数据库版本= 4000000,请求的版本 = 3505053,文件名 = \?\C:\Users\gal\Documents\Visual Studio 2012\WebSites\Project_Level_4\DB\PhoneBookWeb.sdf]

有人可以帮忙吗?

【问题讨论】:

Sqlce 4.0 中引入了对 ASP.NET 的支持。从第二条消息来看,该程序似乎加载了错误的程序集(SqlCe 3.5),并尝试打开使用另一个版本(4.0)创建的文件。您确定(所有)您的项目引用了正确版本的 SqlCe 吗? 【参考方案1】:

安装 SQL CE 4.0 包:http://www.microsoft.com/en-us/download/details.aspx?id=17876

尝试在 IDE 中将引用添加到“C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll”

添加 using 子句:

using System.Data.SqlServerCe;
using System.IO;

然后尝试这样的事情:

        string connectionString;
        string fileName = "test.sdf";
        string password = "test";

         if (File.Exists(fileName))
            File.Delete(fileName);

        connectionString = string.Format("DataSource=\"0\"; Password='1'", fileName, password);

        SqlCeConnection conn = null;

        try 

            SqlCeEngine engine = new SqlCeEngine(connectionString);
            engine.CreateDatabase();

            conn = new SqlCeConnection(connectionString);
            conn.Open();

            SqlCeCommand cmd = conn.CreateCommand();
            cmd.CommandText = "CREATE TABLE myTable (col1 int, col2 ntext)";
            cmd.ExecuteNonQuery();
        
        catch(Exception ex) 
        
            Console.WriteLine(ex.ToString());
        
        finally 
            conn.Close();
        

【讨论】:

以上是关于无法在 Visual Studio 2012 的 asp.net 中使用 sql server ce 4.0的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Visual Studio 2012 中正确查看属性窗口

无法在 Visual Studio 2012 中编译 TypeScript 文件

无法在 SSIS 2012 中显示 Visual Studio Tools for Application Editor

无法在 Windows XP 上运行 Visual Studio 2012 程序

openssl 包含 Visual Studio 2012 无法识别的路径

无法在 Windows Server 2008 上运行 Visual Studio 2012 远程调试器