我有这个简单的查询,用值填充ComboBox
:
void fillCari()//fill Cari-med dropdown with values
{
try
{
string connectionString = "Data Source=LPMSW09000012JD\\SQLEXPRESS;Initial Catalog=Carimed_Inventory;Integrated Security=True";
SqlConnection con2 = new SqlConnection(connectionString);
con2.Open();
string query = "SELECT * FROM dbo.Carimed";
SqlCommand cmd2 = new SqlCommand(query, con2);
SqlDataReader dr2 = cmd2.ExecuteReader();
while (dr2.Read())
{
string cari_des = dr2.GetString(dr2.GetOrdinal("Item_Description"));
comboBox3.Items.Add(cari_des);
comboBox3.Text.Trim();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
它完成了它需要做的所有事情,即在键入字母时它开始相应地过滤下拉列表。我接下来想要根据输入的任何值过滤下拉框。例如。如果一个单词通常是"16 cat123"
,则用户必须首先键入数字"16"
或数字"1"
以显示结果。如果用户应该从键入"cat123"
开始,那么我会想要而不是这样,那么它仍然会调出"16 cat123"
这是原始项目。我怎样才能做到这一点?这可以通过SELECT
查询中的like运算符来完成吗?
答案 0 :(得分:0)
在SELECT查询中你可以这样问:
SqlCommand cmd2 = new SqlCommand(query, con2);
string query = "SELECT * FROM dbo.Carimed WHERE Item_Description LIKE '%@TEXT%'";
cmd2.Parameters.Add("@TEXT", SqlDbType.NVARCHAR).Value = comboBox3.Text;
SqlDataReader dr2 = cmd2.ExecuteReader();
这应该过滤您的查询以选择包含所键入文本的单词。 This link可能会对您有所帮助。