在应使用条件的上下文(在 'ORDER' 附近)中指定了非布尔类型的表达式。
string sql = "WHERE 1=1";
if (ConfigParam.Keyword != "")
{
txtKey.Text = ConfigParam.Keyword;
sql += " and m.UserName like '%" + ConfigParam.Keyword + "%'";
}
if (ConfigParam.StatusFlag>0)
{
DropDownList1.SelectedValue = ConfigParam.StatusFlag.ToString();
sql += " and mo.StatusFlag = " + ConfigParam.StatusFlag;
}
protected void btnSearch_Click(object sender, EventArgs e)
{
Response.Redirect("manage.aspx?StatusFlag=" + DropDownList1.SelectedValue + "&Keyword=" + txtKey.Text);
}
exec('SELECT mo.ID FROM MemberOrder mo
LEFT JOIN Member m ON m.ID = mo.UserID '+@Keywords+' ORDER BY mo.ID DESC')
[解决办法]
@Keywords是什么东西,肯定拼接后sql语句有问题,显示出来看看
[解决办法]
- SQL code
--如果你使用exec,就把你的sql拼好了再往,像你上面的法declare @sql nvarchar(max),@Keywords nvarchar(200)select @Keywords='....'select @sql='SELECT mo.ID FROM MemberOrder moLEFT JOIN Member m ON m.ID = mo.UserID '+@Keywords+' ORDER BY mo.ID DESC'exec(@sql)--或者你使用sp_executesql,可以
[解决办法]
关键@Keywords这个变量的值是什么???
[解决办法]
[解决办法]
orz 你keywords那个参数断点追一下里面的值。如果只是一个关键字的话那你的sql拼出来肯定是不对的!