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であり、それが指定されていないことを意味します。パラメーターのスペルが間違っているか、2 つのパラメーターがあると思っていたのに 1 つのパラメーターしか指定しなかった可能性があります。しかし、その根底にある意味は非常に明確です。

于 2013-02-06T06:26:04.690 に答える
0

あなたのクエリには明らかに@userid

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

<SelectParameters>
Set でこれを提供していないので、準備完了です。

于 2013-02-06T06:25:57.923 に答える