forgottenrealm
Goto Top

Checkbox an Bindingsource

Moinmoin

Ich verzweifle gerade an einem Formular, auf dem ich verschiedene Textfelder und Checkboxen über eine Bindingsource an eine MySQL Tabelle angebunden habe.

Die Datensätze werden über eine Combobox gewechselt, was auch gut funktioniert ... zumindest für Textfelder.

Beim Wechseln des Datensatzes werden alle Textfelder sowie Comboboxen mit den richtigen Werten befüllt, füge ich nun aber über Bindingsource.AddNew einen neuen Datensatz an und wähle diesen in der Combobox aus, werden die Textfelder korrekt leer angezeigt, die Checkboxen hingegen behalten den Wert des zuletzt ausgewählten Datensatzes.

Das Binding schaut wie folgt aus;

...
TV_SQLString = "SELECT * FROM " & Const_tbl_Sicherungen & " WHERE Client=" & ConstSQLEscape & cb_ClientAuswahl.Text & ConstSQLEscape & " ORDER BY MyID"  

Private_Sicherungen_BindingSource.DataSource = CreateDataTable(TV_SQLString, DBTyp.MySQL, Public_MySQLConnectString, Private_Sicherungen_DataTableName)
If Private_Sicherungen_BindingSource.Count = 0 Then Private_Sicherungen_BindingSource.AddNew()

Private_Sicherungen_DataAdapter = New MySqlDataAdapter(TV_SQLString, Public_MySQLConnectString)
Private_Sicherungen_DataAdapter.Fill(Private_Sicherungen_DataSet, Private_Sicherungen_DataTableName)

Dim CB As MySqlCommandBuilder = New MySqlCommandBuilder(Private_Sicherungen_DataAdapter)
Private_Sicherungen_DataAdapter.UpdateCommand = CB.GetUpdateCommand()

...
tb_SicherungLogdateiPfad.DataBindings.Add("Text", .DataSource, "LogdateiPfad", True, DataSourceUpdateMode.OnPropertyChanged)  

cbox_SicherungDirekteZielangabe.DataBindings.Add("Checked", .DataSource, "DirekteZielangabe", True, DataSourceUpdateMode.OnPropertyChanged)  
...

Ein zusätzliches Problem ist, dass beim Speichern des neuen Datensatzes die Checkbox Felder in der Datenbank keinen Wert (weder 0 noch 1) erhalten, solange ich diese nicht über den Code von 0 zu 1 und wieder zu 0 ändere und dann speichere.

Gespeichert wird mit ...

Private_Sicherungen_BindingSource.EndEdit()
Private_Sicherungen_DataAdapter.Update(CType(Private_Sicherungen_BindingSource.DataSource, DataTable))
Private_Sicherungen_DataSet.AcceptChanges()


Ich hoffe, ihr könnt mir helfen dieses Problem zu lösen.

Freundliche Grüße!

Content-Key: 259948

Url: https://administrator.de/contentid/259948

Ausgedruckt am: 28.03.2024 um 15:03 Uhr

Mitglied: 114757
Lösung 114757 15.01.2015, aktualisiert am 16.01.2015 um 09:58:01 Uhr
Goto Top
Mitglied: ForgottenRealm
ForgottenRealm 16.01.2015 um 09:58:59 Uhr
Goto Top
Moin

Vielen Dank, genau das war es face-smile

Auf CheckState muss man erstmal kommen, wenn man die ganze Zeit mit Checked gearbeitet hat ...
Der Umstieg von VBA zu VB.net ist doch etwas schwieriger geworden als man dachte face-smile

Gruß !