![](/img/trans.png)
[英]dropdown selected index changed event fires while setting data from database in asp.net c#
[英]C# windows forms listbox selected index changed event fires on form load and button click
我正在編寫一個程序,允許用戶使用客戶名稱搜索客戶訂單,用戶在TextBox
鍵入名稱,搜索結果顯示在ListBox
控件中,用戶必須從列表中選擇名稱框和客戶的訂單顯示在DataGridView
,問題是客戶點擊SelectedIndex
更改事件后觸發的搜索按鈕並導致程序崩潰。
private void btnSearch_Click(object sender, EventArgs e)
{
string Query = "SELECT CustomerID, CompanyName FROM Customers WHERE (CompanyName ”+ “LIKE'%"+ txtSearch.Text + "%')";
clsDataTools.cmdComand = clsDataTools.con.CreateCommand();
clsDataTools.cmdComand.CommandText = Query;
clsDataTools.dtaDataAdapter = new SqlDataAdapter();
clsDataTools.dtaDataAdapter.SelectCommand = clsDataTools.cmdComand;
dsOrdersByCusName = new DataSet();
clsDataTools.con.Close();
clsDataTools.con.Open();
clsDataTools.dtaDataAdapter.Fill(dsOrdersByCusName);
clsDataTools.con.Close();
dsOrdersByCusName.Tables[0].TableName = "OrderBCusName";
lstResults.DataSource = dsOrdersByCusName.Tables[0];
lstResults.DisplayMember = "CompanyName";
lstResults.ValueMember = "CustomerID";
}
private void lstResults_SelectedIndexChanged(object sender, EventArgs d)
{
string Query = "SELECT * From Orders WHERE CustometID = '"
+ lstResults.SelectedValue
+ "'";
dataGridDataSet = new DataSet();
clsDataTools.dtaDataAdapter = new SqlDataAdapter();
clsDataTools.cmdComand = clsDataTools.con.CreateCommand();
clsDataTools.cmdComand.CommandText = Query;
clsDataTools.con.Close();
clsDataTools.con.Open();
clsDataTools.dtaDataAdapter.SelectCommand = clsDataTools.cmdComand;
clsDataTools.dtaDataAdapter.Fill(dataGridDataSet);
clsDataTools.con.Close();
dataGridDataSet.Tables[0].TableName = "Orders";
dgvCusOrders.DataSource = dataGridDataSet;
dgvCusOrders.DataMember = dataGridDataSet.Tables["Orders"].ToString();
}
我真的不明白為什么當我點擊搜索按鈕時會引發SelctedIndexChanged
事件是否有我可能遺漏的東西?
由於您設置了lstResults
的數據源,因此它將調用SelectedIndexChanged
,您可以執行以下操作
private void btnSearch_Click(object sender, EventArgs e)
{
//Remove the handler
this.lstResults.SelectedIndexChanged -= lstResults_SelectedIndexChanged;
//
// Your code
//
this.lstResults.SelectedIndexChanged += lstResults_SelectedIndexChanged; // Add the handler
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.