读了我的组合框的任何字母

时间:2016-12-05 17:50:14

标签: c# sql winforms

我有这个简单的查询,用值填充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运算符来完成吗?

1 个答案:

答案 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可能会对您有所帮助。