【发布时间】:2013-11-21 11:32:23
【问题描述】:
所以我试图基于两件事删除数据库中的数据。
第一个是选择列名的组合框,第二个是要删除的行的值。
(@"SELECT * FROM Contacts WHERE " + var + " LIKE " + textBox1.Text + ";");
现在的问题是,只要文本框中的值是数字,这个查询就可以正常工作。但是,如果它是一个字符串值,则查询将失败,因为我没有插入单引号。
有没有我可以做一个单一的统一查询来处理数字和文本数据。
【问题讨论】:
-
答案取决于您选择的数据库访问工具。不过,您可能想了解en.wikipedia.org/wiki/SQL_injection。
-
不要关心 SQL 注入。
-
你.... 不在乎 SQL 注入?!好的,所以我选择 var
foo并输入 textbox1'foo';DELETE * FROM Contacts。现在我猜你在乎! -
不,我只会显示异常。这只是一个愚蠢的任务。
-
Assignment 或 Missle 控制系统 - 你仍然应该关心 SQL 注入漏洞!
标签: c# .net sql sql-server tsql