Wenn man im DataGridViev in Windows Forms einen Datensatz mit den durch den Designer erstellten Einstellungen erstellt und automatisch aktualisiert, bekommt man in der Datenbank per default NULL-Values.
Um das zu verhindern, füge ich in Form_Load einen Event für TableNewRow hinzu, in dem ich wiederum die Defaultvalues setzen kan:
Private Sub Form_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Me.myDataSetTableAdapter.Fill(Me.myDataSet.myTablename)
AddHandler myDataSet.Tables(0).TableNewRow, AddressOf newRowHandler
End Sub
Sub newRowHandler(ByVal sender As Object, ByVal e As DataTableNewRowEventArgs)
Dim row As DataRow
row = e.Row()
For Each clm As DataColumn In row.Table.Columns
Select Case clm.DataType.ToString
Case GetType(String).ToString
row(clm) = ""
Case GetType(Guid).ToString
row(clm) = Guid.NewGuid
Case GetType(Boolean).ToString
row(clm) = False
Case GetType(Integer).ToString, GetType(Long).ToString, _
GetType(Double).ToString, GetType(System.Decimal).ToString
row(clm) = 0
Case Else
End Select
Next
End Sub