如何添加相同的select * from database2.western
内容,但名称='“并与此代码合并(在同一查询中)
string Query = "select * from database2.western where id='" + comboBox1.Text + "' ;";
答案 0 :(得分:3)
您不应该直接在SQL查询中使用用户输入 - 它会让您对SQL injection attack开放。
如果您确实想要,请使用:
string Query = "select * from database2.western where id='" + comboBox1.Text + "' OR name = '" + comboBox1.Text+ "' ;";
在实践中,您至少应该逃避用户输入中的任何引号。但是,您使用的任何SQL库都有某种转义方法。假设它确实,并且它被称为escape
,您可以使用:
string idOrName = escape(comboBox1.Text);
string Query = "select * from database2.western where id='" +idOrName + "' OR name = '" + idOrName + "' ;";
或者更好的是,如果您的库支持参数化查询,例如:
string Query = "select * from database2.western where id=? OR name = ?";
DatabaseEngine.runParameterisedQuery(Query, idOrName, idOrName);
这是伪代码 - 将DatabaseEngine.runParameterisedQuery
替换为适用于您的库的内容。
答案 1 :(得分:0)
啊
where [name] = somevalue or [name] = ''
正如所建议的那样,你对sql注入攻击持开放态度,应该使用参数化查询。