0

我正进入(状态:

必须声明标量变量“@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>
4

3 回答 3

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

于 2013-02-06T06:24:02.363 回答
1

通常,此错误意味着您正在调用的语句或存储过程需要一个名为 的参数@userid,而您没有提供它。也许你拼错了参数,或者你认为有两个参数并且只提供了一个参数。但背后的含义非常清楚。

于 2013-02-06T06:26:04.690 回答
0

您的查询显然需要@userid

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

你没有在你的<SelectParameters>
Set 中提供这个,你应该很高兴。

于 2013-02-06T06:25:57.923 回答