SelectedItem
is the data object that is bound to the ComboBox
's data source, which in this case is DataRowView
.
You need to cast SelectedItem
to DataRowView
, then retrieve the appropriate value from it.
You can do this as follows:
DataRowView oDataRowView = cmbLeader.SelectedItem as DataRowView;
string sValue = "";
if (oDataRowView != null) {
sValue = oDataRowView.Row["YourFieldName"] as string;
}
then replace (in your CommandText):
cmbLeader.SelectedItem.ToString()
with:
sValue
This will gracefully handle the case where DataRowView is null.
YourFieldName
in the above code should be the name of the field in the data source that contains the Name value. If you have set this field name in the combobox's DisplayMember
or ValueMember
properties, then you can just use this property instead in order to save yourself some heartache down the road when this field changes or when you want to reuse this code elsewhere:
sValue = oDataRowView.Row[cmbLeader.DisplayMember] as string;
Alternatively, you can use cmbLeader.SelectedValue
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…