必须声明标量变量“@userid”

时间:2013-02-06 06:18:26

标签: c# asp.net sql-server-2008

我得到了:

  

必须声明标量变量“@userid”。

开启

if (HttpContext.Current.Items["AlbumID"] != null)
{
    Page.DataBind();
    ddlAlbum.Items.FindByValue(HttpContext.Current.Items["AlbumID"].ToString()).Selected = true;
}

我认为这与某些事情有关:

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:SLIITComDBConnectionString %>" 
                    SelectCommand="SELECT [AlbumId], [AlbumName] FROM [Album]  WHERE (userid=@userid) ">
                   <SelectParameters>
                <asp:QueryStringParameter DefaultValue="1" Name="AlbumID" 
                    QueryStringField="AlbumID" Type="Int32" />
            </SelectParameters>
 </asp:SqlDataSource>

3 个答案:

答案 0 :(得分:1)

在SQL查询中使用@userid var,它未声明!

SELECT [AlbumId], [AlbumName] FROM [Album]  WHERE (userid=@userid)

关于您的问题有很多信息 http://msdn.microsoft.com/en-us/library/z72eefad%28v=vs.100%29.aspx

答案 1 :(得分:1)

通常,此错误意味着您调用的语句或存储过程需要名为@userid的参数,并且您尚未提供该参数。也许您拼错了参数,或者您认为有两个参数并且只提供了一个参数。但其根本意义非常明确。

答案 2 :(得分:0)

您的查询显然需要@userid

SELECT [AlbumId], [AlbumName] FROM [Album]  WHERE (userid=@userid)

您尚未在<SelectParameters>中提供此信息 设置它,你应该很高兴。