【发布时间】:2009-02-12 23:35:46
【问题描述】:
我继承了下面的代码,但我很困惑,因为代码工作得很好,但我不相信它是正确的。我以前没有使用过 LIKE,所以我无法决定是否应该费心改变它。你觉得这个怎么样?
代码用于 db 中的过滤器,它检查 X 值是否包含 Y 值,在 X 中查找 X*(例如,Fun 和 Fan 中的匹配将是 F*),并且 X 不包含 Y。
感谢您的意见。
foreach (ListViewItem item in listView1.Items)
{
strStuff += item.Text;
object o = item.SubItems[1].Tag;
switch ((int)item.SubItems[1].Tag)
{
case 0:
strStuff += " LIKE '%" + item.SubItems[2].Text + "%'"; //contains
break;
case 1:
strStuff += " LIKE '" + item.SubItems[2].Text + "'"; //allows * wildcard
break;
case 2:
_strCriteria += " NOT LIKE '%" + item.SubItems[2].Text + "%'"; //doesn't contain
break;
default:
strStuff += "\"" + item.SubItems[2].Text + "\"";
break;
}
strStuff += " And ";
}
【问题讨论】:
-
这看起来很容易受到 SQL 注入攻击
-
内部应用程序永远不会受到攻击!?!?!我想知道我在哪里可以找到一些“快乐阳光员工土地”的员工......
-
我发现几乎不可能保护员工免受攻击。他们不需要 SQL 注入来开始随机化客户订单。
标签: sql sql-server tsql sql-like