【问题标题】:Can't use sql server ce 4.0 in asp.net in visual studio 2012无法在 Visual Studio 2012 的 asp.net 中使用 sql server ce 4.0
【发布时间】:2023-04-04 04:02:01
【问题描述】:

一开始它写了这个异常:

“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 吗?

标签: c# asp.net sql-server-ce sql-server-ce-4


【解决方案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();
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多