如何用包含用户输入的查询填充组合框?

zmeyuzjn  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(288)

我的sql查询不工作。查询如下:

QueryString = SELECT material FROM tbl1 WHERE vendor = UserInputVar;

这个查询将在用户通过在组合框(比如combobox1)中选择一个值来生成userinputvar之后运行。此查询所做的是,此查询获取的结果将填充另一个组合框(例如,combobox2)。
我试图在网上找到解决办法,但对我目前的问题没有任何效果。我试着自己做了以下几件事:
将mysqldataadapter与mysqlcommandbuilder一起使用,然后使用适配器填充数据表,该数据表就是数据源
将querystring和connect\ dbstring放入mysqlcommand构造函数中,并使用mysqlcommand的变量示例。然后,使用adapter和commandbuilder填充第二个组合框的数据源。
任何建议和链接都会有所帮助。我真的不知道该怎么办,因为我通常对select语句使用mysqldatareader,对insert语句使用mysqldataadapter。我以前没有在mysqldataadapter中使用select的经验

pokxtpni

pokxtpni1#

我设法解决了这个问题。原来我的参数化查询方法是错误的,但我最终纠正了它。我没有使用mysqlcommand参数,而是使用mysqldataadapter参数。一开始我不知道,但谢天谢地我现在知道了。

dwthyt8l

dwthyt8l2#

不要在sql语句中使用用户输入,因为它会产生进行sql注入的可能性。

using (MySqlConnection connection = new MySqlConnection(con))
    {
        try
        {
            connection.Open();
            using (MySqlCommand command = connection.CreateCommand())
            {
                command.CommandText = "SELECT material FROM tbl1 WHERE vendor=@vendor"
               command.Parameters.AddWithValue("@vendor", UserInputVar);
                command.ExecuteNonQuery();
                connection.Close();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

至于从sql查询填充combobox,请看以下文章:https://stackoverflow.com/a/12495086/1099716

相关问题