Предполагая, что это в WinForms, я предполагаю, что когда вы вызываете comboBoxDC.SelectedItem, результатом является "System.Data.DataRowView".Проблема с вашим кодом в том, что вы устанавливаете только DisplayMember.Если вы не задаете свойство ValueMember, значением по умолчанию для выбора ComboBox является DataRowView, если вашим источником данных является DataTable (или DataView).
Чтобы получить искомые данные, измените свой кодкак пример ниже.
РЕДАКТИРОВАТЬ Извините, мой метод будет работать, предполагая, что ваши поля являются текстовыми объектами.Если это не так (т. Е. Десятичные числа, целые числа и т. Д.), Вам необходимо сначала привести их к соответствующим им типам данных, а затем вызвать ToString () для результата.
Если вы установите ValueMember для полявнутри вашего объекта данных это будет не DataRowView, а указанное поле.Если вы все еще получаете «System.Data.DataRowView» в качестве строкового результата, то в вашем коде есть другая ошибка.Пожалуйста, обновите ваш вопрос, и я помогу вам найти его.
private void populateCombos()
{
string GetConn1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\\Data\\Db\\Comp.mdb";
string queryString = "SELECT DISTINCT DC FROM Comp";
OleDbDataAdapter dA = new OleDbDataAdapter(queryString, GetConn1);
DataTable dC = new DataTable();
dA.Fill(dC);
comboBoxDC.DataSource = dC;
comboBoxDC.DisplayMember = "DC";
comboBoxDC.ValueMember = "DC"; //Add this line.
string GetConn2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\\Data\\Db\\Comp.mdb";
string queryString2 = "SELECT DISTINCT PL FROM Comp";
OleDbDataAdapter dA2 = new OleDbDataAdapter(queryString2, GetConn2);
DataTable pL = new DataTable();
dA2.Fill(pL);
comboBoxPL.DataSource = pL;
comboBoxPL.DisplayMember = "PL";
comboBoxPL.ValueMember = "PL"; //Add this line, too.
}
Теперь измените код, который получает текстовое значение, следующим образом:
string sDa = comboBoxDC.SelectedValue.ToString(); //Do this if this is a string column
string sPr = comboBoxPL.SelectedValue.ToString(); // '' '' '' '' ''
//If your data is not strings, cast them to their respective types
Console.WriteLine(da.ToString());
Console.WriteLine(sDa);
Console.WriteLine(sPr);