日期:2014-05-18  浏览次数:21359 次

必须声明标量变量 "@userid"。 请求高手指教
“/Web”应用程序中的服务器错误。
--------------------------------------------

必须声明标量变量 "@userid"。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: 必须声明标量变量 "@userid"。

源错误: 


行 143: catch (Exception ex)
行 144: {
行 145: throw ex;
行 146: }
行 147: finally
 

源文件: D:\MyWeb\扎堆儿网\DAL\SqlHelper.cs 行: 145 

堆栈跟踪: 


[SqlException (0x80131904): 必须声明标量变量 "@userid"。]
  DAL.SqlHelper.ExecuteNonQuery(String cmdText, CommandType ct) in D:\MyWeb\扎堆儿网\DAL\SqlHelper.cs:145
  DAL.ClusterInfoDAO.InsertClus(ClusterInfo c) in D:\MyWeb\扎堆儿网\DAL\ClusterInfoDAO.cs:79
  BLL.ClusterManager.InsertClus(ClusterInfo c) in D:\MyWeb\扎堆儿网\BLL\ClusterManager.cs:56
  _Default.bntOK_Click(Object sender, EventArgs e) in d:\MyWeb\扎堆儿网\Web\StartCluster.aspx.cs:111
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
  System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746

 


------解决方案--------------------
额,没给@userid这个变量赋值吧?
------解决方案--------------------
@userid要对应一个变量,,你要发的应该是sql语句前后的相关代码贴出来
------解决方案--------------------
C# 报错已经说的很清楚了
叫你自己去跟跟就是

估计是你的UserID的值为:null,为null的时候改为DBNull.Value;
------解决方案--------------------
参数@userid没给值,就会报这个错。
------解决方案--------------------
sqlparameter,,,
------解决方案--------------------
你没有申明变量啊,请贴出
d:\MyWeb\扎堆儿网\Web\StartCluster.aspx.cs:111

StartCluster.aspx.cs:111
第111行前后部分有用信息代码

------解决方案--------------------
三层的代码?@明显是没有赋值啊,在helper里面看代码里面给@的赋值啊,要不然sql语句肯定出错啊
------解决方案--------------------
你调用的存储过程中@userid是不为NULL的参数,也就是说不能为空,而你调用的时候配的参数中没有@userid。需要加上。
------解决方案--------------------
必须声明标量变量 "@userid"。

------解决方案--------------------
没有给赋值 好好查查是哪步没有给赋值 DAL 里面呢好好查
------解决方案--------------------
sqlparameter中的@userid没给值就用了,或者这个值不需要的话就从parameter或sql语句中去掉