接下來我想根據輸入的任何值過濾下拉框。如果一個單詞是說"16 cat123"
通常用戶將不得不開始輸入數字"16"
或數字"1"
爲它顯示結果。相反,如果用戶應該通過輸入"cat123"
開始,那麼它仍會顯示原始項目"16 cat123"
。我怎樣才能做到這一點?我知道這是LIKE
條款與我的SELECT
的組合,但目前它仍以相同的方式運行,只是通過輸入的第一個字母發回值。這是我當前的查詢:LIKE子句沒有像預期的那樣返回值
string query = "SELECT * FROM dbo.Carimed WHERE Item_Description LIKE '%" + comboBox3.Text.Replace("'", "''") + "%'; ";
我在想什麼?
private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
string connectionString = "Data Source=CMDLAP126;Initial Catalog=Carimed_Inventory;User ID = sa; Password = 123456;";
string query = " "SELECT * FROM dbo.Carimed WHERE Item_Description LIKE '%" + comboBox3.Text.Replace("'", "''") + "%' ";
SqlConnection con = new SqlConnection(connectionString);
con.Open();
SqlCommand cmd = new SqlCommand(query, con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string cari_code = dr.GetString(dr.GetOrdinal("item#"));
textBox2.Text = cari_code;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
您的邏輯在這裏看起來是正確的,''LIKE'%value%''是做「包含」搜索的正確語法,您可能希望將更完整的示例放在一起以顯示問題。 – Guvante
參數化你的查詢,或者一個聰明的輸入(SQL注入)可能會破壞你的數據庫。 –
我從[這裏](https://www.codeproject.com/tips/631196/combobox-with-suggest-ability-based-on-substring-s)使用該用戶的指南找到了解決辦法。 什麼由作者完成是覆蓋默認的組合框設置在WinForms中。我只是找到了一種將其綁定到我的代碼並啓動並運行的方法。希望這有助於未來的某個人。 – Jevon