2013-02-06 22 views
0

我得到:必須聲明標量變量「@userid」

必須聲明標量變量「@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 ([email protected]) "> 
        <SelectParameters> 
       <asp:QueryStringParameter DefaultValue="1" Name="AlbumID" 
        QueryStringField="AlbumID" Type="Int32" /> 
      </SelectParameters> 
</asp:SqlDataSource> 
+3

爲什麼當聲明中沒有@ userid時,SQL語句會抱怨'@ userid'?顯然,它抱怨某些東西_does_有'@ userid'。 –

+0

我編輯了這個問題,我粘貼了錯誤的代碼。 – Arbaaz

+1

顯然,如果您在查詢中引用了@ @ userid,那麼您的參數需要是'userId'。 –

回答

0

您的查詢,顯然需要一個@userid

SELECT [AlbumId], [AlbumName] FROM [Album] WHERE ([email protected]) 

你有沒有在你的<SelectParameters>
提供這一套,你應該很好去。

1

通常,此錯誤意味着您正在調用的語句或存儲過程需要一個名爲@userid的參數,並且您尚未提供該參數。也許你拼錯了參數,或者你認爲有兩個參數,只提供了一個參數。但其基本含義非常明確。