【发布时间】:2016-03-25 09:58:21
【问题描述】:
我正在尝试在 sql 表中搜索特定字符串,并返回找到的观察数。不管字符串是否在表中,它都会不断返回-1。这是我的代码:
@{
Layout = "~/_Layout.cshtml";
Page.title = "TestArea";
var db = Database.Open("Cafeen");
string SearchWord = "Jolly";
var msg = db.Execute("SELECT COUNT(*) FROM Products WHERE ProductName = @SearchWord");
}
<p>@msg</p>
我应该使用COUNT(*) 以外的东西吗? -1的意义是什么?如果找不到字符串,我会假设表达式返回 0。
【问题讨论】:
-
您实际上并没有将 SearchWord 字符串传递给那里的 db.Execute() 调用,是吗?
-
尝试 var msg = db.Execute("SELECT COUNT(*) FROM Products WHERE ProductName = '"+ SearchWord+"'");
-
@Jamaxack 小心。如果该字符串是用户输入,则您要求的是 Bobby Tables 场景。
-
不要忘记将参数放在单引号之间:
db.Execute("SELECT COUNT(*) FROM Products WHERE ProductName = '"+ SearchWord + "'"); -
@Nyerguds 是的,你是对的,但在这个例子中我认为问题很明显
标签: c# sql asp.net-mvc webmatrix