Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Impossibile far funzionare sql server compact 3.5/4 con ASP .NET MVC 2

SQL CE 3.5 non funziona con ASP.NET, è necessario utilizzare 4.0 CTP.

Scarica da qui .

Installa il runtime.

Copia il contenuto della directory seguente (incluse le cartelle x86 e amd64) nella cartella bin dell'app ASP.NET:C:\Programmi\Microsoft SQL Server Compact Edition\v4.0\Private

AGGIORNAMENTO:utilizza System.Data.SqlServerCe.dll dalla cartella Desktop per evitare problemi di affidabilità media

myapp\bin\ 
 System.Data.SqlServerCe.dll 

myapp\bin\x86 
 sqlceca40.dll 
 sqlcecompact40.dll 
 sqlceer40EN.dll 
 sqlceme40.dll 
 sqlceqp40.dll 
 sqlcese40.dll 

myapp\bin\amd64 
 sqlceca40.dll 
 sqlcecompact40.dll 
 sqlceer40EN.dll 
 sqlceme40.dll 
 sqlceqp40.dll 
 sqlcese40.dll 

Aggiungi un riferimento al file System.Data.SqlServerCe.dll che hai appena inserito nella cartella /bin.

Inserisci il file sdf di SQL Compact nella cartella App_Data.

Aggiungi stringa di connessione:

<connectionStrings>
   <add name ="NorthWind"
   connectionString="data source=|DataDirectory|\Nw40.sdf" />
</connectionStrings>

Collegare! :-)

using System.Data.SqlServerCe;

    protected void Page_Load(object sender, EventArgs e)
    {
        using (SqlCeConnection conn = new SqlCeConnection())
        {
            conn.ConnectionString = ConfigurationManager.ConnectionStrings["Northwind"].ConnectionString;
            conn.Open();
            using (SqlCeCommand cmd = new SqlCeCommand("SELECT TOP (1) [Category Name] FROM Categories", conn))
            {
                string valueFromDb = (string)cmd.ExecuteScalar();
                Response.Write(string.Format("{0} Time {1}", valueFromDb, DateTime.Now.ToLongTimeString()));
            }
        }
    }