Entwickler-Ecke
Basistechnologien - Vorgespeicherte Werte aus dem DataSet übernehmen.
dinazavric - Fr 06.05.11 09:21
Titel: Vorgespeicherte Werte aus dem DataSet übernehmen.
Moin, moin!
Und wieder mal eine Frage an Euch :-) Ich habe eine Relation für die ComboBoxes erstellt und möchte nun die Werte, die vorher schon mal gespeichert wurden, übernehmen, so, dass sie beim Auswahl von einem bestimmten Protocol in den Boxen angezeigt werden. Bin für jeden Tipp oder Hinweis sehr dankbar!
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| dataSetPro.Relations.Add("ParameterProperties", dataSetPro.Tables["Parameters"].Columns["ParameterName"], dataSetPro.Tables["ParameterValues"].Columns["ParameterName"]);
BindingSource bs1 = new BindingSource(); bs1.DataSource = this.dataSetPro; P1_Name.DisplayMember = "Parameters.ParameterName"; P1_Name.ValueMember = "Parameters.ParameterName"; P1_Name.DataSource = bs1; P1_Value.DisplayMember = "Parameters.ParameterProperties.ValueDefinition"; P1_Value.ValueMember = "Parameters.ParameterProperties.ParameterName"; P1_Value.DataSource = bs1;
if (dataSetPro.Tables["Protocols"].Rows.Contains(P_Name_List.Text)) { P1_Name.SelectedItem = ...; P1_Value.SelectedItem = ...; } else { P1_Name.SelectedItem = null; P1_Value.SelectedItem = null; } |
dinazavric - Mo 09.05.11 16:47
Leider habe ich bis jetzt keine Antwort bekommen und habe versucht es selber zu lösen. Die ComboBoxen habe ich erstmal mit TextBoxen ersetzt. Die TextBoxes habe ich in ein Array zusammengefasst um so meinen Code zu verkürzen. Hier ist mein Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| int i = 0; foreach (DataRow dataRow in dataSetPro.Tables["Parameter"].Rows) { if (dataRow["ProtocolID"].ToString() == IdT.Text) { NameControlsT[i].Text = dataRow["ParameterName"].ToString(); ValueControlsT[i].Text = dataRow["ValueDefinition"].ToString(); i++; } else { NameControlsT[i].Text = ""; ValueControlsT[i].Text = ""; i++; } } |
Mit dem Code werden leider nur die Daten für IdT.Text = "1" angezeigt, sprich, wenn man was anders als "1" hat wird die Bedienung "dataRow["ProtocolID"].ToString() == IdT.Text" nicht erfüllt. Ich habe aber in der DataTable auch andere IDs. Ich konnte den Fehler nicht finden. Kann mir da jemand helfen? Danke
dinazavric - Di 10.05.11 16:02
Da ich leider wieder keine Antwort bekommen habe, muss ich wohl selber nach der Lösung suchen ;-) Hier ist sie auch schon :-)
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| int i = 0;
foreach (DataRow dataRow in dataSetPro.Tables["Parameter"].Rows) { if (dataRow["ProtocolID"].ToString() == IdT.Text) { if (i < 10) { NameControlsT[i].Text = dataRow["ParameterName"].ToString(); ValueControlsT[i].Text = dataRow["ValueDefinition"].ToString(); i++; } else break; } else { if (i < 10) { NameControlsT[i].Text = ""; ValueControlsT[i].Text = ""; } else break; } } |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!