Announcement

Collapse
No announcement yet.

Interne Datenbank und DataSet bzw. DataTable mit sqlClientDataAdapter aktualisieren

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

  • Interne Datenbank und DataSet bzw. DataTable mit sqlClientDataAdapter aktualisieren

    Hallo, wahrscheinlich ist dieses Thema schon einige Male angesprochen worden, nur leider kann ich die Vorschläge nicht in meinen Quellcode einbinden.

    VB 2008 und SQLServer 2005

    Hier meine Erläuterung und mein Quellcode:
    1. Ich habe eine Interne Datenbank installiert, die mit SQLEXPRESS angesprochen wird.
    2. Die Daten der Tabelle werden in einem DataView-Objekt eingespielt, geändert und hinzugefügt.
    3. Dann sollen die Daten mit einem DataAdapter aktualisiert werden (Was leider nicht funktioniert).

    Nachfolgend mein Quellcode:
    *[highlight=vbnet] Module Erstellen_Aktualisieren_Tabellen

    'Ermittlung Verbindungsweg-----------------------------------------
    Public strProgrammStartPfad As String = Application.StartupPath
    Public strDatenbankname As String = "Personen.mdf"

    'VisualBasic-------------------------------------------------------
    Public sqlConString As String = "Data Source=.\SQLEXPRESS;" & _
    "AttachDbFilename=" & strProgrammStartPfad & "\Personen.mdf;" & _
    "Integrated Security=True; connection Timeout=30"
    Public sqlClCon As New SqlClient.SqlConnection(sqlConString)
    Public sqlClCMD As New SqlClient.SqlCommand
    Public sqlCldaPersonen As New SqlClient.SqlDataAdapter
    Public sqlClcb As New SqlClient.SqlCommandBuilder

    'Datenbank---------------------------------------------------------
    Public dsAdressen As New DataSet("Adressen")
    Public tblPersonen As DataTable = dsAdressen.Tables.Add("Personen")
    Public tblOrte As DataTable = dsAdressen.Tables.Add("Orte")
    Public drwReihe As DataRow
    Public dclSpalte As DataColumn
    Public dvwPersonen As DataView
    Public intIndex As Integer

    'SQL-Befehle-------------------------------------------------------
    Public strSqlBefehl As String

    Public Sub pdrTabelle(Optional ByVal strTabellenStatus As String = "Fill")
    'Verbindung----------------------------------------------------
    sqlClCon.Open()

    'Command-------------------------------------------------------
    sqlClCMD.Connection = sqlClCon
    sqlClCMD.CommandType = CommandType.Text

    'DataAdapter---------------------------------------------------
    sqlCldaPersonen.MissingSchemaAction = MissingSchemaAction.AddWithKey
    sqlCldaPersonen.ContinueUpdateOnError = True

    'Tabelle (Personen)--------------------------------------------
    strSqlBefehl = "select * From tblPersonen_DB_2 ORDER BY ID"
    sqlClCMD.CommandText = strSqlBefehl
    sqlCldaPersonen.SelectCommand = sqlClCMD
    If strTabellenStatus = "Update" Then
    sqlCldaPersonen.ContinueUpdateOnError = True
    sqlClcb.DataAdapter = sqlCldaPersonen
    Dim intZahl As Integer = 0
    Try
    tblPersonen.Columns("ID").ReadOnly = False
    intZahl = sqlCldaPersonen.Update(tblPersonen) '
    tblPersonen.Columns("ID").ReadOnly = True
    Catch ex As Exception
    MessageBox.Show("Fehler: {0}", ex.Message)
    End Try
    MessageBox.Show(betroffen & " Datenzeilen aktualisiert") 'Meldung es wurde 0 Datenzeilen aktualisiert.
    sqlCldaPersonen.Update(tblPersonen)
    pdrVerbindung_schliessen()
    End If
    tblPersonen.Clear()
    sqlCldaPersonen.Fill(tblPersonen)
    sqlClCon.Close()
    End Sub
    End Module[/highlight]

    Ich hoffe mein Problem ist nicht zu banal und ich danke schon mal für Eure Hilfe!
    Horst_A
    Zuletzt editiert von Horst_A; 10.07.2012, 15:08.
Working...
X