Announcement

Collapse
No announcement yet.

VB2010 - Inhalt eines DataGridView in einer Datenbank speichern

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

  • VB2010 - Inhalt eines DataGridView in einer Datenbank speichern

    Hallo,

    ich arbeite zur Zeit mit Visual Studio VB 2010 und habe ein DateGridView mit Daten gefüllt und möchte diese in eine Datenbank speichern mit dem SQL Insert Statement.

    Ich dachte an einer
    Code:
    For each [...Füge aus dem DGV jede Zeile in die Datenbank ein.. Next
    Connection.close()
    Ich bekomm es jedoch leider nicht hin, dass das Programm Eine Zeile nach der anderen, in die Datenbank schreibt.

    Es klappt mit einem Datensatz:
    Code:
        'Neuen Datensatz, SQL Statement (TEST INSERT!):
        Dim StrSQLDatensatzEinfügen As String
        StrSQLDatensatzEinfügen = "INSERT INTO test VALUES('hallo','ok')"
    
        'Verbindung öffnen
        OleDbConnectionSchreiben.Open()
    
        'SQL Befehl ausführen
        Dim OleDbCommandDateierzeugen As New OleDbCommand(StrSQLNeueTabelle, OleDbConnectionSchreiben)
        Dim OleDbCommandDatensatzEinfügen As New OleDbCommand(StrSQLDatensatzEinfügen, OleDbConnectionSchreiben)
    
        OleDbCommandDateierzeugen.ExecuteNonQuery()
    
        OleDbCommandDatensatzEinfügen.CommandText = StrSQLDatensatzEinfügen
        OleDbCommandDatensatzEinfügen.ExecuteNonQuery()

    Hat jemand ein Ratschlag und könnte mir helfen?

    Wäre echt Klasse!

  • #2
    Wie sind den die Daten ins Grid gekommen. Databinding? Dann bitte kurz die Datenstruktur zeigen.

    Comment


    • #3
      Originally posted by Ralf Jansen View Post
      Wie sind den die Daten ins Grid gekommen. Databinding? Dann bitte kurz die Datenstruktur zeigen.
      Hallo Ralf,
      ja, die Daten sind per Binding reinkommen:

      Code:
      'Daten in das DataGridView einfügen
      BindingSourceEinlesen.DataSource = DataTable
      DataGridViewEinlesen1.DataSource = BindingSourceEinlesen
      Die Datenstruktur ist folgende:

      Die Datensätze (die eingelesen wurden) sind aus einer Datenbank (dbase). Mit dem Connection String...

      Code:
      Dim StrConnectionSchreiben As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\dBase\merged;Extended Properties=dBASE IV"
      ...sollen neue Datensätze in eine neue Datei gespeichert werden.
      es gibt drei Spalten:
      ID(primary key), Datum(date), Wert(char20)

      Es werden neue Daten in dem DataGridView eingeben und sollen anschließend per Mausklick in eine Neue Datei gespeichert werden, die das dBase System hat.

      Ich hoffe es ist verständlich erklärt, ansonsten bitte ich um eine kurze Rückmeldung.
      (Das Hinzufügen von Datensätzen funktioniert auch mit einem Insert (Test-)Statement:
      StrSQLDatensatzEinfügen = "INSERT INTO test VALUES('hallo','ok')"
      Jedoch sollen die Datensätze ja aus dem DGV ausgelesen werden, Zeile für Zeile und dann per INSERT in die dBase Datei gespeichert werden.
      Ich dachte dabei an einer For Each Schleife, jedoch stehe ich dort leider auf dem Schlauch....)
      Danke!

      Comment


      • #4
        Die neuen Daten landen dann auch wieder in deiner DataTable. Dann wäre das Vorgehen die geänderten Daten in der DataTable über eine DataAdapter wieder in die Datenbank zurückzuspielen. Zum Updaten brauchst du dann die Update Methode des DataAdapters.

        Comment


        • #5
          Hallo, ich denke das mit dem Update wird vorerst nicht gehen, da ich per SQL Insert Statement die Daten zurückschaufel... da es sich um eine dBase Datenbankdatei handelt.
          Die "richtigen" Daten die zu übernehmen sind, sind bereits in einem DataTable enthalten und werden in einem DataGridView angezeigt.

          Ich denke mal das auslesen und Schreiben habe ich gelöst, jedoch muss ich bevor was geschrieben wird aus dem Datatable das Tabellenschema kopiert werden und in der neuen Datenbankdatei eingefügt werden.

          Und Dabei häng ich gerade fest, Da VB die Datentypen zwar ausliest, die Typen sind jedoch in VB und nicht gleich wie in SQL. zB String (vb )und Text, char etc (sql).

          Kennt jemand ein "einfaches" Beispiel um das komplette Tabellstrukturschema in eine neue zu kopieren?

          Comment

          Working...
          X