c#mysql连接
你好,我有一个执行问题c#mysql连接,c#,mysql,C#,Mysql,你好,我有一个执行问题 string MyConString = "SERVER=<snip>;" + "DATABASE=<snip>;" + "UID=<snip>;" + "PASSWORD=<snip>;"; MySqlConnection connection = new MySqlConnection(MyConString); MySqlCommand command = connection.CreateCommand(); co
string MyConString = "SERVER=<snip>;" + "DATABASE=<snip>;" + "UID=<snip>;" + "PASSWORD=<snip>;";
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand command = connection.CreateCommand();
command.CommandText = "UPDATE characters SET nobless=1 WHERE char_name=";
connection.Open();
try
{
command.BeginExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
MessageBox.Show("Done");
connection.Close();
command.CommandText = "UPDATE characters SET nobless=1 WHERE char_name=";
例如,我如何才能做到这一点?例如,如果我成功了:
command.CommandText = "UPDATE characters SET nobless=1 WHERE char_name='hello'";
它起作用了
但当我拥有它时:
command.CommandText = "UPDATE characters SET nobless=1 WHERE char_name="+listbox1.selecteditem.toString();
它不工作,实际上我想将一个列表框的选定名称设置为WHERE=
使用:
你需要更清楚“不工作”在这里的含义。有错误吗?此外,该代码还存在SQL注入漏洞。此外,问题是连接字符串中的值周围没有引号,但使用类似Oded的参数化查询,否则您的站点非常容易被攻击。您需要使用listbox1.SelectedVALUE或listbox1.selectedItem.TEXT。如果这些ToString()不是aleady字符串,则可以强制转换它们。听着,我建议您使用Oded的响应,因为您希望使用参数化查询。但是您要查找的代码是command.CommandText=“updatecharacters SET nobless=1,其中char_name='”+listbox1.SelectedItem.Text+”;没有错误,但它不工作。实际上我不知道如何在这里添加一个文本变量:where char_name=textbox.1text我想这样做,但是怎么做?@user1174925-我已经给了你我所能提供的所有帮助。代码应该替换您的代码行。
command.CommandText = "UPDATE characters SET nobless=1 WHERE char_name="+listbox1.selecteditem.toString();
command.CommandText = "UPDATE characters SET nobless=1 WHERE char_name= @char_name"
command.Parameters.AddWithValue("@char_name", listbox1.SelectedItem);