--- title: "SqlDependency in an ASP.NET application" description: "Demonstrates how to use query notifications from an ASP.NET application." ms.date: "08/15/2019" dev_langs: - "csharp" ms.assetid: ff226ce3-f6b5-47a1-8d22-dc78b67e07f5 ms.prod: sql ms.prod_service: connectivity ms.technology: connectivity ms.topic: conceptual author: David-Engel ms.author: v-daenge ms.reviewer: v-kaywon --- # SqlDependency in an ASP.NET application [!INCLUDE[Driver_ADONET_Download](../../../includes/driver_adonet_download.md)] The example in this section shows how to use indirectly by leveraging the ASP.NET object. The object uses a to listen for notifications and correctly update the cache. > [!NOTE] > The sample code assumes that you have enabled query notifications by executing the scripts in [Enabling query notifications](enable-query-notifications.md). ## About the sample application The sample application uses a single ASP.NET Web page to display product information from the **AdventureWorks** SQL Server database in a control. When the page loads, the code writes the current time to a control. It then defines a object and sets properties on the object to store the cache data for up to three minutes. The code then connects to the database and retrieves the data. When the page is loaded and the application is running ASP.NET will retrieve data from the cache, which you can verify by noting that the time on the page does not change. If the data being monitored changes, ASP.NET invalidates the cache and repopulate the `GridView` control with fresh data, updating the time displayed in the `Label` control. ## Creating the sample application Follow these steps to create and run the sample application: 1. Create a new ASP.NET Web site. 2. Add a and a control to the Default.aspx page. 3. Open the page's class module and add the following directives: ```csharp using Microsoft.Data.SqlClient; using System.Web.Caching; ``` 4. Add the following code in the page's `Page_Load` event: [!code-csharp[DataWorks SqlDependency_Start#1](~/../sqlclient/doc/samples/SqlDependency_Start.cs#1)] 5. Add two helper methods, `GetConnectionString` and `GetSQL`. The connection string defined uses integrated security. You will need to verify that the account you are using has the necessary database permissions and that the sample database, **AdventureWorks**, has notifications enabled. [!code-csharp[DataWorks SqlDependency_Start#2](~/../sqlclient/doc/samples/SqlDependency_Start.cs#2)] ### Testing the application The application caches the data displayed on the Web form and refreshes it every three minutes if there is no activity. If a change occurs to the database, the cache is refreshed immediately. Run the application from Visual Studio, which loads the page into the browser. The cache refresh time displayed indicates when the cache was last refreshed. Wait three minutes, and then refresh the page, causing a postback event to occur. Note that the time displayed on the page has changed. If you refresh the page in less than three minutes, the time displayed on the page will remain the same. Now update the data in the database, using a Transact-SQL UPDATE command and refresh the page. The time displayed now indicates that the cache was refreshed with the new data from the database. Note that although the cache is updated, the time displayed on the page does not change until a postback event occurs. ## Next steps - [Query notifications in SQL Server](query-notifications-sql-server.md)