Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server Compact 3.5 / 4 kann nicht mit ASP .NET MVC 2 funktionieren

SQL CE 3.5 funktioniert nicht mit ASP.NET, Sie müssen 4.0 CTP verwenden.

Laden Sie es von hier herunter .

Installieren Sie die Laufzeitumgebung.

Kopieren Sie den folgenden Verzeichnisinhalt (einschließlich der x86- und amd64-Ordner) in den bin-Ordner Ihrer ASP.NET-App:C:\Programme\Microsoft SQL Server Compact Edition\v4.0\Private

UPDATE:Verwenden Sie System.Data.SqlServerCe.dll aus dem Desktop-Ordner, um Probleme mit mittlerer Vertrauenswürdigkeit zu vermeiden

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 

Fügen Sie einen Verweis auf die Datei System.Data.SqlServerCe.dll hinzu, die Sie gerade in Ihrem /bin-Ordner abgelegt haben.

Legen Sie die SQL Compact-SDF-Datei in Ihrem App_Data-Ordner ab.

Verbindungszeichenfolge hinzufügen:

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

Verbinden! :-)

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