这是一个奇怪的问题,我已经研究了一段时间。我有sqldatasource
个select
和update
语句。但是这些语句对参数不起作用。
例如,如果在SQL select语句中我有WHERE dept_id = '@DEPTID'
然后有:
<UpdateParameters>
<asp:Parameter Name="DEPTID" Type="string" DefaultValue="10122" />
</UpdateParameters>
它不起作用,但是如果我删除了UpdateParameters并改为放置WHERE dept_id = '10122'
它就能完美运行。
我知道参数正在正确传递,因为我在sqldatasource标记中放入了OnSelect="OnSqlSelecting"
,并在代码隐藏中使用了这个:
protected void OnSqlSelecting(Object source, SqlDataSourceCommandEventArgs e)
{
for (int i = 0; i < e.Command.Parameters.Count; i++)
{
Response.Write(e.Command.Parameters[i].ParameterName.ToString() + "<br />");
Response.Write(e.Command.Parameters[i].Value.ToString() + "<br />");
}
}
它为我提供了正确参数的正确DefaultValue。我没有提供我的所有代码,但是对于这类问题有什么常用的解释或解决方法?
答案 0 :(得分:0)
从'@DEPTID'中删除那些单引号。
尝试:
WHERE [dept_id] = @DEPTID