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
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