2010-10-06 7 views
1

Я уже некоторое время сталкивался с этой проблемой. У меня есть приложение, как:выпадающий список не заполняет значения из базы данных sql

<asp:SqlDataSource runat="server" ID="categoriesDataSource" 
    SelectCommand="SELECT [CategoryID], [Name], [UserId] FROM [Categories] WHERE ([UserId] = @UserId) ORDER BY [Name]"> 
    <SelectParameters> 
     <asp:QueryStringParameter Name="CategoryID" QueryStringField="ID" /> 
    </SelectParameters> 
    </asp:SqlDataSource> 

    Pick a category: &nbsp; 
    <asp:DropDownList ID="categories" runat="server" AutoPostBack="True" 
     DataSourceID="categoriesDataSource" DataTextField="Name" 
     DataValueField="CategoryID" AppendDataBoundItems="True"> 
    <asp:ListItem Selected="True" Value="">-- All Categories --</asp:ListItem> 
</asp:DropDownList> 

<asp:SqlDataSource ID="picturesDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
      ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
      SelectCommand="SELECT PictureID, Title, UploadedOn 
FROM Pictures 
WHERE UserId = @UserId AND 
(CategoryID = @CategoryID OR @CategoryID IS NULL) 
ORDER BY UploadedOn DESC" CancelSelectOnNullParameter="False"> 
       <SelectParameters> 
        <asp:QueryStringParameter Name="UserId" QueryStringField="ID" /> 
        <asp:ControlParameter ControlID="categories" Name="CategoryID" PropertyName="SelectedValue" 
         Type="Int32" /> 
       </SelectParameters> 
      </asp:SqlDataSource> 
      <br /> 
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
     AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" 
     DataKeyNames="PictureID" DataSourceID="picturesDataSource" ForeColor="#333333" 
     GridLines="None"> 
     <AlternatingRowStyle BackColor="White" /> 
     <Columns> 
      <asp:HyperLinkField DataNavigateUrlFields="PictureID" 
       DataNavigateUrlFormatString="~/Photodetail.aspx?ID={0}" Text="View Comments" /> 
      <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> 
      <asp:BoundField DataField="UploadedOn" HeaderText="Date Added" 
       SortExpression="UploadedOn" /> 
      <asp:ImageField DataImageUrlField="PictureID" 
       DataImageUrlFormatString="~/UploadedImages/{0}.jpg" HeaderText="Image"> 
       <ControlStyle Width="100px" /> 
      </asp:ImageField> 
     </Columns> 
     <EditRowStyle BackColor="#2461BF" /> 
     <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
     <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
     <RowStyle BackColor="#EFF3FB" /> 
     <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
     <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
     <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
     <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
     <SortedDescendingHeaderStyle BackColor="#4870BE" /> 
    </asp:GridView> 

Когда я забрать

<SelectParameters> 
    <asp:QueryStringParameter Name="CategoryID" QueryStringField="ID" /> 
</SelectParameters> 

и ([UserId] = @UserId), управление выпадающий список будет заполнить значения из базы данных, но когда я покину эти 2, он не будет заселить любое значение из базы данных.

Когда я удалить

<asp:QueryStringParameter Name="CategoryID" QueryStringField="ID" /> 
    </SelectParameters>, 

и оставить ([UserId] = @UserId), я получаю ошибку:

Must declare the scalar variable "@UserId".

Может кто-нибудь, пожалуйста, помогите мне? Заранее спасибо

+0

серьезно чувак, ты отправил 4 одинаковые вопросы в течение последних нескольких дней. – RPM1984

+0

yeah ive искал решение вопроса, но я не нашел ни одного – onfire4JesusCollins

+0

, так что опубликуйте обновления ОДНОГО вопроса о том, что вы пробовали, и т.д., открывая новые повторяющиеся вопросы, не поможет, на самом деле это сломает сообщество. – RPM1984

ответ

1

Тот, который я разместил here in your previous thread, определенно работает.

Я думаю, вы, возможно, пропустили строку запроса «ID» в своем URL-адресе.

Вы просматриваете "http://localhost:1234/WebAppName/PageName.aspx?=12"? (предположим, что номер с автоматическим сгенерированным номером составляет 1234, а идентификатор - 12)

Он выдает ошибку, если вы не указали «?ID=12».

alt text

0
public void bind() 
{ 
    sqldataadapter da=new sqldataadapter("select A,B from table",cn); 
    datatable dt=new datatable(); 
    da.fill(dt); 
    dropdownlist1.datatextfield="A"; 
    dropdownlist1.datavaluefield="B"; 
    dropdownlist1.datasource=dt; 
    dropdownlist1.databind(); 
} 
Смежные вопросы