2012-01-15 55 views
0

我對組合框的SelectedIndex變化表登錄如何處理組合框的selectedindexchange

id 
name(nchar 30) 
password(nchar 30) 
catagory(nchar 10) 

和一個WinForm登錄其中有一個組合框(名稱)和一個文本框(密碼)我有以下代碼

SqlConnection test = new SqlConnection(); 
     test.ConnectionString = "Data Source=snipper;Initial Catalog=LoginData;Integrated Security=True;Pooling=False"; 
     String QueryString = "SELECT  Id, name, password, catagory FROM Login WHERE  (Id = "+IdComboBox.SelectedValue +")"; 
     SqlDataAdapter sqlad = new SqlDataAdapter(QueryString,test); 
     test.Open(); 
     DataSet abc = new DataSet(); 
     sqlad.Fill(abc); 
     test.Close(); 
     IdComboBox.SelectedValue = abc.Tables[0].Rows[0]["Id"]; 
     PasswordBox.Text = abc.Tables[0].Rows[0]["password"].ToString(); 

運行,但問題是當我改變組合框的值是更改密碼第一次,但下一次顯示了另一個紀錄有什麼不妥的密碼錯誤?

+0

首先,你不需要test.Open();和test.Close();而使用SqlDataAdapter.Fill()方法,並且如果更改組合框的值,那麼意味着更改文本,它不會調用SelectedIndexChanged事件。你是否已經爲IdComboBox分配了一個數據源? – pistipanko 2012-01-15 10:26:18

+0

請添加您用來填充IdComboBox組合框的代碼。 – 2012-01-15 12:13:21

+0

我通過數據綁定(從屬性)this.LoginTableAdapter.Fill(this.loginDataDataSet.Login)添加數據源; – buddy 2012-01-15 14:15:09

回答

0

好友:

刪除以下行。我想在此之後它可能會起作用。

IdComboBox.SelectedValue = abc.Tables[0].Rows[0]["Id"];