Я использую C #, winforms.
У меня небольшая проблема. Я отлаживал как можно больше, что наводит меня на мысль, что код, который я использую, вызывает проблему.
Итак, у меня есть поле со списком, заполненное данными из запроса.
Есть 2 столбца «имя» и «код ключа». Я отображаю имя только используя:
accCollection.DisplayMember = "name";
Затем я использую следующее, чтобы получить значение кода клавиши, соответствующее имени.
string acct = accCollection.SelectedValue.ToString();
У меня проблема в том, что код клавиши НЕ соответствует названию. Я думал, что это может быть мой запрос, поэтому я просто отобразил результаты запроса в виде таблицы данных, прежде чем заполнить поле со списком. Представление таблицы данных отображает правильные результаты, что наводит меня на мысль, что я использую неправильный код!
Надеюсь, это глупая проблема с одной строкой, если вы, ребята, хотите больше кода, дайте мне знать, и я отредактирую этот пост.
ОБНОВЛЕНИЕ вот код, который я забыл упомянуть, как вы видите, я уже назначил элемент данных
accCollection.DataSource = myTable;
accCollection.DisplayMember = "name";
accCollection.ValueMember = "keycode";
ОБНОВЛЕНИЕ :::: Хорошо, еще немного информации. выбранное значение должно быть 1557, которое является номером счета имен. но я получаю 1855, это другой номер счета. как я и сказал, данные являются правильными .... вот почему я оооочень смущен!
ОБНОВЛЕНИЕ :: вот код, чтобы вы могли видеть, как я обновляю поле со списком с информацией!
SqlCommand accountFill = new SqlCommand("SELECT name, keycode FROM dbo.Customer", conn1);
SqlDataAdapter readacc = new SqlDataAdapter(accountFill);
DataTable dt = new DataTable();
readacc.Fill(dt);
dataGridView3.DataSource = dt;
conn1.Close();
accCollection.DataSource = dt;
accCollection.DisplayMember = "name";
accCollection.ValueMember = "keycode";
затем я передаю следующее в мою задачу, которая вызывает мой другой запрос.
private void button1_Click_1(object sender, EventArgs e)
{
checkBox1.Checked = true;
string acct = accCollection.SelectedValue.ToString();
Task t = new Task(() => GetsalesFigures(acct));
t.Start();
}
ОБНОВЛЕНИЕ :: просто чтобы показать данные, которые я получаю!

хорошо, поэтому после некоторой помощи с отладкой я использовал следующий код для получения этих результатов.
var result = accCollection.SelectedValue;
if (result != null)
{
MessageBox.Show(result.ToString());
}
это = 1885, что неправильно
НО, когда я это делаю.
DataRowView row = (DataRowView)accCollection.SelectedItem;
if (row != null)
{
MessageBox.Show(row[0] + " " + row[1]);
}
показывает правильные данные, "мелкшем" "1557"
почему это?