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

时间:2013-09-02 06:58:41

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

起初它写了这个例外:

  

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

然后我补充说:

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

到Global.aspx并修复了它。

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

  

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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

安装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();
        }