Невозможно использовать sql server ce 4.0 в asp.net в Visual Studio 2012

Сначала он написал это исключение:

«SQL Server Compact не предназначен для разработки ASP.NET».

а потом я добавил:

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

к Global.aspx, и это исправлено.

Но теперь, когда я пытаюсь открыть SqlCeConnection, это дает мне это исключение:

Несовместимая версия базы данных. Если это был совместимый файл, запустите repair. Для других случаев обратитесь к документации. [ Версия базы данных = 4000000, запрошенная версия = 3505053, имя файла = \?\C:\Users\gal\Documents\Visual Studio 2012\WebSites\Project_Level_4\DB\PhoneBookWeb.sdf ]

Кто-нибудь может помочь?


person user2738850    schedule 02.09.2013    source источник
comment
Поддержка ASP.NET появилась в Sqlce 4.0. Из второго сообщения похоже, что программа загрузила не те сборки (SqlCe 3.5) и пытается открыть файл, созданный другой версией (4.0). Вы уверены, что (все) ваши проекты ссылаются на правильную версию SqlCe?   -  person Chris    schedule 13.09.2013


Ответы (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 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();
        }
person RizcoTech    schedule 27.09.2013