我的SQL查询无法正常工作。查询是这样的:
QueryString = SELECT material FROM tbl1 WHERE vendor = UserInputVar;
此查询将在用户通过从组合框(例如,combobox1)中选择一个值进行UserInputVar后运行。该查询的作用是该查询获取的结果将填充另一个组合框(例如combobox2)。
我尝试在线查找解决方案,但是对当前问题没有任何帮助。我尝试通过以下方法自行完成:
使用MySqlDataAdapter和MySqlCommandBuilder,然后使用适配器填充数据表,该数据表将成为数据源
将QueryString和connect_DBstring放入MySqlCommand构造函数中,并使用MySqlCommand的变量实例。然后,使用适配器和Commandbuilder填充第二个组合框的数据源。
任何建议和链接都会有所帮助。我真的不知道该怎么办,因为我通常将MySqlDataReader用于SELECT语句,将MySqlDataAdapter用于INSERT语句。我以前没有使用SELECT和MySqlDataAdapter的经验
答案 0 :(得分:1)
请勿在SQL语句中使用用户输入,因为它可以创建SQL injections。
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查询填充组合框,请看以下文章: https://stackoverflow.com/a/12495086/1099716
答案 1 :(得分:0)
我设法解决了这个问题。事实证明,我的参数化查询方式是错误的,但我终于纠正了它。我没有使用MySqlCommand参数,而是使用了MySqlDataAdapter参数。起初我从不知道,但是现在我知道了。