Мне нужно отобразить некоторые данные из представления в базе данных SQL Server на нескольких страницах моего веб-сайта. Я сделал это, используя SqlDataSource
в своем web.config
, а затем использовал элемент управления GridView
на моей странице .aspx
, чтобы отобразить данные.Лучшее решение для SqlDataSource?
Теперь это работает, но я прочитал в каком-то форуме, что использовать плохую практику SqlDataSource
? Вероятно, мне понадобится возможность для администратора/пользователя фильтровать данные в будущем, поэтому я не уверен, как это будет работать с моей текущей реализацией.
Мой код до сих пор выглядит следующим образом:
В web.config
файле:
<connectionStrings>
<add name="Test1.ConnectionString"
connectionString="Data Source=...."
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
И что-то вроде этого в моей ASPX
<body id="wrap" >
<form runat="server">
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False"
BackColor="White" BorderColor="#CCCCCC"
BorderStyle="None" BorderWidth="1px" CellPadding="3"
DataSourceID="SqlDataSource1" Height="500px" Width="408px">
<Columns>
<asp:BoundField DataField="Title" HeaderText="Title" ReadOnly="True" SortExpression="Title">
<ItemStyle Width="400px" HorizontalAlign="Center" Height="100px" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" />
</asp:BoundField>
<asp:BoundField DataField="Result" HeaderText="Result" ReadOnly="True" SortExpression="Result" >
<ItemStyle HorizontalAlign="Center" Height="100px" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" />
</asp:BoundField>
</Columns>
<FooterStyle BackColor="White" ForeColor="#002756" />
<HeaderStyle BackColor="#003466" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#002756" HorizontalAlign="Left" />
<RowStyle ForeColor="#002756" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings: Test1.ConnectionString %>"
SelectCommand="SELECT * FROM [Test1.ConnectionString]">
</asp:SqlDataSource>
</form>
</body>
Так что мой вопрос есть лучше способ реализовать это, имея в виду, что мне, вероятно, понадобится функция для пользователя/администратора для фильтрации данных по определенным критериям?
Любая конкретная причина, по которой вы не используете код для получения данных? – Izzy
Я родом из php-фона и совершенно новичок в asp.net, так что все еще пытаюсь обнять эту голову. Но я думаю, это было бы лучшим решением? – MariaL