저는 C#, winforms를 사용하고 있습니다.combobox에서 선택한 값을 얻으십시오
작은 문제가 발생했습니다. 나는 가능한 한 많이 디버깅하여 내가 사용중인 코드가 문제를 일으키는 것으로 믿게한다. 그래, 쿼리의 데이터로 채워진 콤보 상자가 있습니다.
"name"과 "keycode"의 2 개의 열이 있습니다.
accCollection.DisplayMember = "name";
다음 이름을 사용하여 이름에 해당하는 키 코드 값을 가져옵니다.
string acct = accCollection.SelectedValue.ToString();
문제는 키 코드가 이름과 일치하지 않는다는 것입니다. 비록 이것이 comboBox를 채우기 전에 데이터 그리드 뷰에 쿼리 결과를 디스플레이하는 것이 었습니다. 데이터 그리드보기는 올바른 결과를 표시하여 잘못된 코드를 사용하고 있다고 믿게합니다!
여러분이 더 많은 코드를 알려 주시면이 게시물을 편집하겠습니다. 당신은 내가 이미 데이터 멤버에게
accCollection.DataSource = myTable;
accCollection.DisplayMember = "name";
accCollection.ValueMember = "keycode";
UPDATE를 할당 :::: 확인 좀 더 많은 정보를 볼 수
업데이트를 heres 코드 내가 언급하는 것을 잊었다. 선택된 값은 이름 계좌 번호 인 1557이어야합니다. 하지만 나는 다른 계좌 번호 인 1855를 얻는다. 내가 datatable가 정확하다고 .... 이런 식으로 왜 내가 너무 sooooooo 혼란스러워!
업데이트 : : heres 일부 코드 그래서 당신은 정보로 콤보 상자를 업데이트하는 방법을 볼 수 있습니다!
그런 다음 다른 쿼리를 호출하는 다음 작업을 수행합니다.
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"
는 이유는?
그래서 'accCollection.SelectedValue.ToString()'의 결과는 무엇입니까? 당신이 얻는 키 코드는 무엇입니까? – Otiel
에는 이미 값 멤버가 할당되어 있습니다. – lemunk