Announcement

Collapse
No announcement yet.

SQL DAtei in C# öffnen und Wert ändern?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL DAtei in C# öffnen und Wert ändern?

    Habe eine SQL Datenbankdatei, in der ich einen Wert ändern muss.
    Die genaue Position in der Tabelle kenne ich und mit normalen SQL Queries kenne ich mich auch aus.

    Jedoch weiss ich nicht, wonach ich suchen muss, um die Datenbankdatei über C# kurz zu laden und diesen Wert zu ändern. Die Datenbank ist etwa 50MB groß.

    Hat jemand ein paar Tipps oder Links dazu?
    In C# kenne ich mich leider fast noch gar nicht aus, jedoch habe ich einige SQL QUeries mal über Java programmiert und könnte mir da eventuell etwas abgucken. Jedoch lief da die Datenbank auf einem SQL Server, hier ja nicht.

    Danke!!

  • #2
    Hallo,

    C#-Version 2.x:
    http://openbook.galileocomputing.de/...bc6bc87ede4f67

    C#-Version 3.5:
    http://www.aspnetzone.de/blogs/juerg...t-guthrie.aspx

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      danke für die Links Gü. Werde mich mal durcharbeiten.

      Comment


      • #4
        Code:
        Werde mich mal durcharbeiten.
        könnten wir verkürzen wenn du sagst welche Version du hast. VS 2005 (.net 2.0) oder VS 2008 (.net 3.5)

        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          habe VS2008 Express, also 3.5

          habe in den Tutorials (nur grob überflogen) nur etwas zum Connection zu einer DB gefunden, wie mache ich das für eine lokale SQL Datei, die nicht auf einem Server läuft.

          Zum Betrachten nutze ich zur Zeit den SQLite Database Browser. Schreiben in die DB erfolgt durch ein Programm automatisch.

          Comment


          • #6
            Du brauchst einen passenden ADO.NET, OLEDB oder ODBC Treiber für deinen Datenbank.

            Wenn ich zwischen den Zeilen richtig lese gehts um SQLite. Für einen ADO.net Treiber guckst du z.b. hier.

            Comment


            • #7
              1. http://connectionstrings.com/ bietet eine Übersicht über (alle möglichen) Verbindungszeichenfolgen
              2. da du VS 2008 hast würde ich LINQ verwenden. In VS 2008 (auch in der Express-Version) kann eine Verbindung zu einer lokalen DB hergestellt werden - eine Verbindungszeichenfolge wird automatisch erstellt und muss nicht laut Punkt 1 erstellt werden


              Edit: Wegen SQLLite ist der 2. Punkt nicht möglich (noch nicht )

              mfG Gü
              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

              Comment


              • #8
                genau, ist eine SQLLite Datei.
                schaue mir den Link an, danke dir, Ralf.

                habe hier noch etwas gefunden: http://www.codeproject.com/KB/cs/SQLiteCSharp.aspx
                Zuletzt editiert von tatoosh; 28.11.2008, 18:10.

                Comment


                • #9
                  Wegen SQLLite ist der 2. Punkt nicht möglich (noch nicht )
                  Das ist eher zweifelhaft wenn du LINQ to SQL meinst. Via Entity Framework(LINQ to Entities) sollte es aber jetzt schon gehen?

                  http://blogs.msdn.com/adonet/archive...s-futures.aspx

                  Comment


                  • #10
                    Habe mir nun die DLLs für Finisar SQLite besorgt (http://adodotnetsqlite.sourceforge.net/)
                    Nur weiss ich (Noch) nicht wohin mit den 3 DLL Files?
                    Doku ist auf der Website noch nicht so ausgebaut.

                    habs auch gefunden:
                    1) Place the .dll files you downloaded from this website into your projects binary folder
                    Zuletzt editiert von tatoosh; 28.11.2008, 18:39.

                    Comment


                    • #11
                      wahrscheinlich irgendwohin.
                      Du mußt nur eine Referenz in deinem Projekt auf die Assembly mit den ADO.NET Komponenten(wenn du nicht welche welche von den 3.en einfach alle durchprobieren) hinzufügen und dann so wie im OpenBook beschrieben mit den Komponenten arbeiten.

                      Zumindest auf deren Seite ein Beispiel wie man eine Verbindung zu einer SQLite DB aufmacht.

                      http://adodotnetsqlite.sourceforge.n...onnection2.php

                      Comment


                      • #12
                        okay erster Erfolg hat sich gezeigt. danke euch beiden!
                        Nun verwende ich System.Data.SQLite http://sqlite.phxsoftware.com/.

                        Habe bis jetzt geschafft:
                        Datenbankdatei öffnen, neue Tabelle erstellen und ein Tupel einfügen.
                        Denke jetzt komme ich erst einmal weiter.
                        Das Besipiel gucke ich mir auch noch einmal an

                        Mein Code sieht an dieser stelle wie folgt aus:
                        [highlight=c#]
                        private void button2_Click(object sender, EventArgs e)
                        {
                        SQLiteConnection Conn = new SQLiteConnection();

                        Conn.ConnectionString = "Data Source=MM.db;Version=3;New=False;Compress=True;";
                        Conn.Open();
                        SQLiteCommand Cmd = new SQLiteCommand();
                        Cmd = Conn.CreateCommand();

                        Cmd.CommandText = "CREATE TABLE test (id integer primary key, text varchar(100))";
                        Cmd.ExecuteNonQuery();

                        Cmd.CommandText = "INSERT INTO test (id, text) VALUES (1, 'Test Text 1')";
                        Cmd.ExecuteNonQuery();

                        Cmd.Dispose();
                        Conn.Close();
                        }
                        [/highlight]

                        EDIT
                        Habe mich für System.Data.SQLite entschieden, da ich mit Finisar einen Fehler bekam. Funktioniert aber bestimmt ähnlich.
                        Zuletzt editiert von gfoidl; 28.11.2008, 20:35. Reason: Code formatiert

                        Comment


                        • #13
                          Originally posted by tatoosh View Post
                          ... Funktioniert aber bestimmt ähnlich.
                          Genauso ist es. Die Ähnlichkeit geht sogar noch weiter: Du kannst Dich an der Einführung im OpenBook Visual C# Kap.25 ff. orientieren; Du musst lediglich anstelle der Sql-Klassen die entsprechenden Namen SQLite Deines Providers verwenden. Bei den Command-Texten muss der unterschiedliche SQL-Dialekt beachtet werden, aber die NET-Funktionalität stimmt weitgehend überein.

                          Jürgen

                          PS. Bitte gewöhne Dir an, Code hervorzuheben; siehe der "oberste" Hinweis von gfoidl im C#-Unterforum.

                          PS2. Fragen zu Datenbanken gehören ins Unterforum ADO.NET.

                          Comment


                          • #14
                            PS und PS2 von Jürgen erledigt.

                            @tatoosh: Bitte berücksichtigen
                            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                            Comment


                            • #15
                              Okay danke.
                              Wusste ja erst gar nicht wonach ich suchen muss.
                              werde in zukunft den code sichtbar dastellen und auch versuchen das richtige unterofrum zu nutzen.

                              Comment

                              Working...
                              X