Hallo Leute,
habe folgendes Problem:
Wenn ich im DataGrid von Form3 einen Datensatz markiere und diesen per Klick auf Button "übernehmen" in Form2(Eingabemaske) anzeigen lasse, diesen Datensatz ändere, und dann auf aktuallisieren klicke dann wird der geänderte Datensatz nicht aktuallisiert, bzw. in die Datenbank zurück geschrieben.
Ich arbeite mit dem Assistenten erstellte OleDbDataAdapter, DataSet, DataVew.
In beide Formen sind diese Komponenten eingefügt und die entsprechende Felder, DataGrid usw.. sind an das DV1 gebunden.
Vielleicht kann man anhand des Codes sehen wo das Problem liegt.
[u]Form2:
#Region " Vom Windows Form Designer generierter Code "
Public Property drDetail() As DataRow
Get
Return _drow
End Get
Set(ByVal Value As DataRow)
_drow = Value
TextBox1.Text = _drow(1).ToString
TextBox2.Text = _drow(2).ToString
DateTimePicker1.Value = CType(_drow(3), Date)
ComboBox1.Text = _drow(4).ToString
CheckBox1.Checked = CType(_drow(5), Boolean)
CheckBox2.Checked = CType(_drow(6), Boolean)
RadioButton1.Checked = CType(_drow(7), Boolean)
RadioButton2.Checked = CType(_drow(8), Boolean)
End Set
End Property
irgenwann kommt dann...
#End Region
Dim _drow As DataRow
Public WriteOnly Property frmdetail() As DataRow
Set(ByVal Value As DataRow)
_drow = Value
End Set
End Property
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button8.Click
'Das funtkioniert nicht, Daten werden nicht geändert
'und wieder in die Datenbank zurückgeschrieben
If _drow Is Nothing Then
MessageBox.Show("kein aktiver Datensatz zum Ändern!", "Info!", 0, _
MessageBoxIcon.Information, 0)
Else
With _drow
.Item("Name") = TextBox1.Text
.Item("Vorname") = TextBox2.Text
.Item("Geburtsdatum") = DateTimePicker1.Value.Date
.Item("Geschlecht") = ComboBox1.Text
.Item("Test1") = CheckBox1.Checked
.Item("Test2") = CheckBox2.Checked
If RadioButton1.Checked = True Then
.Item("bezahlt") = 1
Else
.Item("nicht bezahlt") = 2
End If
End With
Me.OleDbDataAdapter1.Update(DataSet11, "DB2005_1")
MessageBox.Show("Daten wurden geändert!", "Info!", 0, _
MessageBoxIcon.Information, 0)
AnzeigeLoeschen()
End If
End Sub [u]Form3:
Dim drDetail As New Form2
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Me.OleDbDataAdapter1.Fill(DataSet11, "DB2005_1")
Pos()
End Sub
Private Sub übernehmen_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles übernehmen.Click
Class1.F2.drDetail = DV1.Item(DataGrid1.CurrentRowIndex).Row
Class1.F2.Show()
Me.Hide()
End Sub Ich weiß nicht mehr weiter hänge hier fest
Gruß
Chief
VB@rchiv its the Best
|