none
Datenbanken - Vorgehensweise - MDF oder Access Datenbank RRS feed

  • Frage

  • Hallo,
    was ist der richtige Weg?

    Ich habe...
     - eine MDF Datei, möchte Daten schreiben, lesen, evtl. das Datenbankmodell erweitern.
     - keine Northwind installiert.
     - keinen SQL Server 2008 installiert.
     - VS2008, C# Prof. installiert

    A) Was benötige ich?
    B) Was muss ich konkret installieren?
    C) Wenn die Applikation fertig ist.
       Was benötige ich dann auf Kundenseite, wenn nichts installiert ist.
       
    Gibt es ein prägnante kurze gute Anleitung, gerne mit Beispielen,
    ohne dass man ewig sucht und probiert.

    Herzlichen Dank.

    Grüße Andreas

    static void Main(string[] args)
        {
          string help2;
          help2 = string.Format("Data Source=.\\SQLEXPRESS;AttachDbFilename=\"C:\\Beispiele\\Database\\ImageGallery.mdf\";Integrated Security=True;Connect Timeout=30;User Instance=True");
         // SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Northwind;Integrated Security=SSPI");
          SqlConnection con = new SqlConnection(help2);

          string strSQL = "SELECT Image_FileName, Image_Title FROM Images";

          SqlDataAdapter da = new SqlDataAdapter(strSQL, con);
          DataTable tbl = new DataTable();
          da.Fill(tbl);
          // Anzeige der Daten im lokalen Speicher
          for (int i = 0; i < tbl.Rows.Count; i++)
          {
            DataRow row = tbl.Rows[i];
            Console.WriteLine("{0,-35} {1} ", row[0], row[1]);
          }
          Console.ReadLine();
        }

    Freitag, 2. Dezember 2011 22:00

Antworten

  • Hallo Andreas,

    um eine SQL Server Datenbank (mdf) nutzen zu können, musst Du SQL Server (ggfs. Express Edition) in der passenden Version installieren. Die Versionen sind nicht aufwärtskompatibel. Wenn Du die MDF also bspw. einmal in einem SQL Server 2008 R2 eingebunden hast, kannst Du diese nicht mehr in einem SQL Server 2008, 2005, 2000 verwenden. Umgekehrt geht das schon, dann aber (aus vorgenanntem Grund) nicht mehr in der vorherigen Version.

    Northwind brauchst Du nicht, das ist nur eine Demodatenbank/Anwendung.

    Auf dem Kundensystem ist dann ebenfalls ein SQL Server (ggfs. Express) in passender Version notwendig, der muss dann auch installiert werden.

    Ansonsten ist auf dem Kundensystem dann nur das passende .NET Framework zu installieren, falls das noch nicht vorhanden ist.

    Benutzerinstanzen (AttachDbFilename=...;User Instance=True) solltest Du, wann immer es geht, einfach sein lassen. Binde die mdf als feste Datenbank in die SQL Server Instanz ein (Anfügen), das ist in 99,9% aller Fälle der bessere Weg.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Freitag, 2. Dezember 2011 22:22
    Moderator
  • Hallo Andreas,

    Die aktuelle SQL Server Express Ausgabe in den unterschiedlichen Verpackungen:

    Microsoft® SQL Server® 2008 R2 SP1 - Express Edition

    wobei man als Entwickler sich die Advanced Services installieren sollte.

    Willst Du SQL Server Express an Deine Kunden weiter reichen, registriere Dich:
    Register for SQL Server 2008 R2 Express Redistribution Rights
    was auf eine Anerkennung der EULA hinausläuft.

    Es spielt keine Rolle, ob Du Visual Studio 2008 / 2010 - Express oder höher verwendest,
    der .NET Provider ist beim Framework dabei.

    Mehr dazu: SQL Server und ADO.NET

    Und ich würde Dich bitten davon auch mal etwas zu lesen -
    Deine Fragen sind seit mehreren Jahren fast unverändert.

    Gruß Elmar
    Samstag, 3. Dezember 2011 12:50
    Beantworter
  • Hallo Andreas,

    die Frage "Datenbankserver oder nicht" hängt von vielen Faktoren ab, die wir nicht kennen, da die Punkte je nach Anforderung mal mehr oder weniger wichtig sind.

    Wenn Du nur eine sehr kleine Datenmenge hast, nicht viel filtern musst (also eher alle Datensätze laden und dann ggfs. per Code suchen, ...) und die Datenquellen exklusiv für deine Anwendungsinstanz vorhanden sind, reicht in der Regel auch eine Access DB, XML Dateien, ...

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Samstag, 3. Dezember 2011 18:47
    Moderator

Alle Antworten

  • Hallo Andreas,

    um eine SQL Server Datenbank (mdf) nutzen zu können, musst Du SQL Server (ggfs. Express Edition) in der passenden Version installieren. Die Versionen sind nicht aufwärtskompatibel. Wenn Du die MDF also bspw. einmal in einem SQL Server 2008 R2 eingebunden hast, kannst Du diese nicht mehr in einem SQL Server 2008, 2005, 2000 verwenden. Umgekehrt geht das schon, dann aber (aus vorgenanntem Grund) nicht mehr in der vorherigen Version.

    Northwind brauchst Du nicht, das ist nur eine Demodatenbank/Anwendung.

    Auf dem Kundensystem ist dann ebenfalls ein SQL Server (ggfs. Express) in passender Version notwendig, der muss dann auch installiert werden.

    Ansonsten ist auf dem Kundensystem dann nur das passende .NET Framework zu installieren, falls das noch nicht vorhanden ist.

    Benutzerinstanzen (AttachDbFilename=...;User Instance=True) solltest Du, wann immer es geht, einfach sein lassen. Binde die mdf als feste Datenbank in die SQL Server Instanz ein (Anfügen), das ist in 99,9% aller Fälle der bessere Weg.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Freitag, 2. Dezember 2011 22:22
    Moderator
  • Hallo Stefan,

    hast Du mir evtl. Links was ich für VS2008 C# benötige.

    Was ich dann kostenfrei beim Kunden ohne Entwicklungsumgebung weitergeben kann und darf.

     

    Grüße Andreas

    P.S. Wenn's geht evtl. auch für VS2010 mal.

    Samstag, 3. Dezember 2011 07:35
  • Hallo Andreas,

    Die aktuelle SQL Server Express Ausgabe in den unterschiedlichen Verpackungen:

    Microsoft® SQL Server® 2008 R2 SP1 - Express Edition

    wobei man als Entwickler sich die Advanced Services installieren sollte.

    Willst Du SQL Server Express an Deine Kunden weiter reichen, registriere Dich:
    Register for SQL Server 2008 R2 Express Redistribution Rights
    was auf eine Anerkennung der EULA hinausläuft.

    Es spielt keine Rolle, ob Du Visual Studio 2008 / 2010 - Express oder höher verwendest,
    der .NET Provider ist beim Framework dabei.

    Mehr dazu: SQL Server und ADO.NET

    Und ich würde Dich bitten davon auch mal etwas zu lesen -
    Deine Fragen sind seit mehreren Jahren fast unverändert.

    Gruß Elmar
    Samstag, 3. Dezember 2011 12:50
    Beantworter
  • Hallo Elmar,

    Danke. Mal habe ich eine Anfrage, dann kommt was dazwischen, dann kommt es mal wieder.

    Deshalb kann schon sein, dass ich eine ähnliche Frage mal gestellt habe.

    Ich will dann nur up to date sein.

    Für mich stellt sich die Frage, wann mann es Sinn einen Overhead wie den SQL Server zu

    installieren oder reicht nicht doch nur ein Dataset, XML Datei.

    So ganz kann mir die Frage niemand beantworten.

    Der Vorteil liegt auf der Hand, man braucht nichts installieren, nichts registrieren.

    Grüße Andreas

    Samstag, 3. Dezember 2011 17:15
  • Hallo Andreas,

    die Frage "Datenbankserver oder nicht" hängt von vielen Faktoren ab, die wir nicht kennen, da die Punkte je nach Anforderung mal mehr oder weniger wichtig sind.

    Wenn Du nur eine sehr kleine Datenmenge hast, nicht viel filtern musst (also eher alle Datensätze laden und dann ggfs. per Code suchen, ...) und die Datenquellen exklusiv für deine Anwendungsinstanz vorhanden sind, reicht in der Regel auch eine Access DB, XML Dateien, ...

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Samstag, 3. Dezember 2011 18:47
    Moderator