SelectedItem
- это объект данных, связанный с источником данных ComboBox
, который в данном случае равен DataRowView
.
Вам необходимо привести SelectedItem
к DataRowView
, а затем извлечь из него соответствующее значение.
Вы можете сделать это следующим образом:
DataRowView oDataRowView = cmbLeader.SelectedItem as DataRowView;
string sValue = "";
if (oDataRowView != null) {
sValue = oDataRowView.Row["YourFieldName"] as string;
}
затем замените (в вашем CommandText):
cmbLeader.SelectedItem.ToString()
с:
sValue
Это будет корректно обрабатывать случай, когда DataRowView равен нулю.
YourFieldName
в приведенном выше коде должно быть имя поля в источнике данных, который содержит значение имени. Если вы задали имя этого поля в свойствах DisplayMember
или ValueMember
в выпадающем списке, вы можете просто использовать это свойство, чтобы избежать душевных страданий в будущем при изменении этого поля или при повторном использовании этого кода в другом месте. :
sValue = oDataRowView.Row[cmbLeader.DisplayMember] as string;
В качестве альтернативы вы можете использовать cmbLeader.SelectedValue
.