title image


Smiley Re: Datenabank wieder speichern ?? ... VB.NET
In deinem Source sind so viele designfehler, das Du Dir vielleicht nocheinmal

die Grundlagen OOP und dann die Grundlagen ADO.NET anlesen solltest.



1. (oop)Man packt Funktionen nicht voll mit allen möglichen aktionen, sondern versucht

Funktionsgruppen zu schaffen die übersichtlich und möglichst abgeschlossen sind.



2. (ADO.NET) Um einen einzelnen Datensatz zu speichern musst Du nicht vorher

die gesammte Datenbank einlesen, eine Zeile in ein DataSet einfügen und dann

speichern, es reicht ein einfache OleDbCommand mit einem Insert.



3. (ADO.NET)Der CommandBuilder wird nach dem initialisieren der DataAdapters erzeugt.



4. Das DataSet, das Du an ein DataGrid bindest sollte vor dem Binden gefüllt werden.



5. Wenn Du ein DataView anlegst, solltest Du es auch benutzen.



6. Wenn Du einen DataAdapter benutzt, musst Du die Connection nicht öffnen,

das macht der Adapter für dich automatisch.



' Diese Funktionen geh”ren in eine DAL ( Data Abstraction Layer )

' Siehe dazu auch bei MS den "Data Access Application Block"

Protected Function ReadDataSet( ByVal SelectString as String, ByVal ConnectString as String, ByVal TabellenName as String) as DataSet

  Dim RetVal as New DataSet()

  Try

    Dim myAdapter as new OleDbDataAdapter( SelectString, ConnectString)

    myAdapter.Fill( RetVal, TabellenName)

    Return RetVal

  Catch Exception Ex

    System.Diagnostics.Debug.WriteLine( ex.ToString+ Environment.NewLine+ ex.StackTrace )

    Throw

  End Try

End Function



Protected Sub WriteDataSet( ByVal SelectString as String, ByVal ConnectString as String, ByVal TabellenName as String, ByVal ds as DataSet) 

  Try

    Dim myAdapter as new OleDbDataAdapter( SelectString, ConnectString)

    Dim myCommandBuilder as new OleDbCommandBuilder( myAdapter)

    myAdapter.Update( ds, TabellenName)

  Catch Exception Ex

    System.Diagnostics.Debug.WriteLine( ex.ToString+ Environment.NewLine+ ex.StackTrace )

    Throw

  End Try

End Function









.

.



If Dateiname <> "" Then



  ' Hier wird per OleDbCommand ein einzelner Datensatz direkt in die DB geschrieben.

  Dim myCon as new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Dateiname)

  Try

    myCon.Open()

    Dim MyCommand as New OleDbCommand( "INSERT INTO [Test1]( Item1, Item2, Item3 ) VALUES(?,?,?)",myCon);

    MyCommand.Parameters.Add( "Item1", OleDbType.Int).Value =Integer.Parse( TextBox1.Text )

    MyCommand.Parameters.Add( "Item2", OleDbType.DateTime).Value =Now

    MyCommand.Parameters.Add( "Item3", OleDbType.VarChar, 255).Value =TextBox3.Text

    MyCommand.ExecuteNonQuery()

  Catch Exception Ex

    System.Diagnostics.Debug.WriteLine( ex.ToString+ Environment.NewLine+ ex.StackTrace )

    Throw

  Finally

    if NOT IsNothing( myCon) Then myCon.Close()

  End Try



  objDataSet_1 = getDataSet( "SELECT * FROM Test1", "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Dateiname, "Test1") 

  objDataSet_2 = getDataSet("SELECT * FROM Test1Bestueckung", "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Dateiname,"Test1Bestueckung")



  DataGrid1.DataSource = objDataSet_1

  DataGrid2.DataSource = objDataSet_2

End If





Colorized by: CarlosAg.CodeColorizer



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: