2016-04-04 60 views
0

我有一個WinForms它只是有一個列表框作爲其唯一的控制背後的代碼:列表框:事件的SelectedIndexChanged調用時添加一個項目

private void Form1_Load(object sender, EventArgs e) 
{ 
listBox1.DataSource = dtv; 
listBox1.DisplayMember = "Name"; 
listBox1.ValueMember = "IDName"; 
} 
private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
DataSet dss = UseDatabase.FillDataSet("Select * From Table Where IDName=" + listBox1.SelectedValue); 
string st = dss.Tables[0].Rows[0][0].ToString(); 
MessageBox.Show(st); 
} 

運行它說:「其它信息:沒有排在位置0」。 調試我在添加一個項目時看到Event SelectedIndexChanged調用。 爲什麼用戶沒有選擇項目,該事件被稱爲 以及如何解決這個問題?

+0

當您的代碼碰到該事件處理程序時,SelectedIndex的值是多少?一點調試可以揭示問題 – Steve

+0

嗨,我設置listBox1.ValueMember =「IDName」;在Form1_Load上 – user1568204

+0

從您收到的錯誤消息中,您可以得出結論,您正在使用的查詢不返回任何行。你能否與debuger檢查你的查詢字符串是什麼樣子的。 – Gnqz

回答

1

據我所知,解決此問題的唯一方法是在事件處理程序方法執行任何其他操作之前檢查SelectedIndex!= -1。

相關問題