Для того что бы не тратить время для повторного подключения к удаленной базе данных, удаленному серверу применяется кэширование.
Кэширование — это сохранение информации для повторного использования в оперативной памяти своего сайта.
Кэширование вывода — это сохранение HTML разметки.
Кэширование — это сохранение информации для повторного использования в оперативной памяти своего сайта.
Кэширование вывода — это сохранение HTML разметки.
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="_0065.Default" %> <%--Duration="60" - продолжительность 60 секунд--%> <%----%> <%-- SqlDependency="abc:Book" - в базе данный abc в таблице Book будут отслеживаться изменения --%> <%-- если в базе данных будут произведены изменения, то при обновлении страницы изменения на странице произойдут стразу, а не через 60 секунд --%> <%@ OutputCache Duration="60" VaryByParam="None" SqlDependency="abc:Book" %> <%-- активация кэширования для базы данных с помощью утилиты Aspnet_regsql.exe --%> <%-- "C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe" --%> <%-- вводим в командную строку --%> <%-- aspnet_regsql.exe -C "Data Source=(localDB)\v11.0;Database='Путь к безе данных';Integrated Security=True" -ed -et -t Имя таблицы --%> <%-- aspnet_regsql.exe -C "Data Source=(localDB)\v11.0;Database='D:\project\aaa\_0065\_0065\App_Data\abc.mdf';Integrated Security=True" -ed -et -t Book --%> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta charset="utf-8" /> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1" CellPadding="4" ForeColor="#333333" GridLines="None"> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <Columns> <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True" InsertVisible="False" SortExpression="Id"></asp:BoundField> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name"></asp:BoundField> <asp:BoundField DataField="Amount" HeaderText="Amount" SortExpression="Amount"></asp:BoundField> <asp:BoundField DataField="Price" HeaderText="Price" SortExpression="Price"></asp:BoundField> </Columns> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView> <asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString='<%$ ConnectionStrings:ConnectionString %>' SelectCommand="SELECT * FROM [Book]"></asp:SqlDataSource> </div> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="_0065.Default" %> <%--Duration="60" - продолжительность 60 секунд--%> <%----%> <%-- SqlDependency="abc:Book" - в базе данный abc в таблице Book будут отслеживаться изменения --%> <%-- если в базе данных будут произведены изменения, то при обновлении страницы изменения на странице произойдут стразу, а не через 60 секунд --%> <%@ OutputCache Duration="60" VaryByParam="None" SqlDependency="abc:Book" %> <%-- активация кэширования для базы данных с помощью утилиты Aspnet_regsql.exe --%> <%-- "C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe" --%> <%-- вводим в командную строку --%> <%-- aspnet_regsql.exe -C "Data Source=(localDB)\v11.0;Database='Путь к безе данных';Integrated Security=True" -ed -et -t Имя таблицы --%> <%-- aspnet_regsql.exe -C "Data Source=(localDB)\v11.0;Database='D:\project\aaa\_0065\_0065\App_Data\abc.mdf';Integrated Security=True" -ed -et -t Book --%> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta charset="utf-8" /> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1" CellPadding="4" ForeColor="#333333" GridLines="None"> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <Columns> <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True" InsertVisible="False" SortExpression="Id"></asp:BoundField> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name"></asp:BoundField> <asp:BoundField DataField="Amount" HeaderText="Amount" SortExpression="Amount"></asp:BoundField> <asp:BoundField DataField="Price" HeaderText="Price" SortExpression="Price"></asp:BoundField> </Columns> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView> <asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString='<%$ ConnectionStrings:ConnectionString %>' SelectCommand="SELECT * FROM [Book]"></asp:SqlDataSource> </div> </form> </body> </html>
Web.config
<?xml version="1.0" encoding="utf-8"?> <configuration> <connectionStrings> <add name="ConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\abc.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> <!--добавить код--> <caching> <sqlCacheDependency> <databases> <!--name - имя базы данных--> <!--pollTime - интервал, с котором будет происходить проверка изменений в базе--> <!--connectionStringName - соответствует атрибуту name в теге connectionStrings/add--> <add name="abc" pollTime="1000" connectionStringName="ConnectionString"/> </databases> </sqlCacheDependency> </caching> </system.web> </configuration>
<?xml version="1.0" encoding="utf-8"?> <configuration> <connectionStrings> <add name="ConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\abc.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> <!--добавить код--> <caching> <sqlCacheDependency> <databases> <!--name - имя базы данных--> <!--pollTime - интервал, с котором будет происходить проверка изменений в базе--> <!--connectionStringName - соответствует атрибуту name в теге connectionStrings/add--> <add name="abc" pollTime="1000" connectionStringName="ConnectionString"/> </databases> </sqlCacheDependency> </caching> </system.web> </configuration>