2015-04-12 4 views
0

Так что у меня DataSource, а также DataList:DataList не отображающие данные

<asp:SqlDataSource ID="SearchDataSource" runat="server" 
     ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\4WheelsDB.mdb;Persist Security Info=True" 
     ProviderName="System.Data.OleDb"> 
     </asp:SqlDataSource> 
    <asp:DataList ID="DataList1" runat="server" DataSourceID="SearchDataSource"></asp:DataList> 

Когда пользователь нажимает на кнопку выполняет этот код, который изменяет запрос в соответствии с тем, что выбрал пользователь:

query = "SELECT * FROM Cars WHERE " 

if(make != 1) 
{ 
    query = query + "make_id = @make"; 
    SearchDataSource.SelectParameters.Add("make", make.ToString()); 
} 

SearchDataSource.SelectCommand = query; 
btn_search.Text = DataList1.Items.Count.ToString(); 

Однако, когда datalist должен отображать некоторые строки, btn_search.Text отображает 0, а строки не отображаются в datalist, кто-нибудь знает, что я делаю неправильно?

ответ

0

Вы должны добавить , где предложение в вашем запросе.

C#

query = "SELECT * FROM Cars" 

if(make != 1) 
{ 
    query = query + " where make_id = @make"; // add here 
    SearchDataSource.SelectParameters.Add("make", make.ToString()); 
} 

SearchDataSource.SelectCommand = query; 
btn_search.Text = DataList1.Items.Count.ToString(); 

ASPX

<asp:DataList ID="DataList1" runat="server" DataSourceID="SearchDataSource"> 
    <ItemTemplate> 
     <asp:Label ID="lblmake_id" runat="server" Text='<%# Eval("make_id")%>' /> 
    </ItemTemplate> 
</asp:DataList> 
+0

Я добавил его, и он не работает до сих пор – c0mrade

+0

Вы должны добавить ItemTemplate в вас DataList.I снова отредактировал мой answer.Try Это , –

+0

Итак, я сделал это, а не 'SearchDataSource.SelectCommand = query;' просто для тестирования, я попробовал 'SearchDataSource.SelectCommand =" SELECT * FROM Cars ";' и он работает, поэтому кажется, что что-то не так с привязкой params, я не понимаю, что с ними может быть ошибкой:/ – c0mrade

Смежные вопросы