2013-05-09 35 views
0

不確定這是可能的。目前,爲了檢測某行已添加到SQL Server中的表中,我使用計時器來查詢表。有沒有一種方法SQL Server(大概通過ADO.NET SqlConnection對象)可以在添加一行時在Visual Basic中引發事件,因此我不需要保持輪詢/查詢數據庫?將行添加到SQL Server表時如何在VB.NET中引發事件

回答

0

如果您正在使用SQL Server 2005 +,你可以使用Service BrokerQuery Notifications。該設置有點複雜。總之你使用SqlDependency Class
的依賴性首先必須創建

System.Data.SqlClient.SqlDependency.Start(CS) 

然後它可以用來

Dim Cmd As New SqlCommand(SQLQuery, cn) 
cmd.CommandText = "select field from dbo.MyTable" 

sqlD = New SqlDependency(Cmd) 

cn.Open() 
Dim tbl As New DataTable 
tbl.Load(Cmd.ExecuteReader) 

AddHandler sqlD.OnChange, AddressOf TableChanged 

的依賴不應該被很多客戶的使用,並且有嚴格的規定(Creating a Query for Notification)如何查詢應該寫出來。

+0

這看起來像我之後。謝謝! – SSS 2013-05-10 02:09:25

1

無論何時發生更新,您都可以在觸發器中添加一個調用應用程序的觸發器。但我想投票將比從數據庫調用您的應用程序更清潔。只需保持較小的請求,並且如果發生更改,則會加載所需的全部數據。

1

您可以隨時在表格中添加trigger,然後從call a webservice中添加trigger。如果有很多數據被添加,我會建議保持你當前的方法並調用數據庫期刊。

你總是可以添加一個「item not process」表。在插入內容時只需在該表格中添加一個項目,然後查詢該表格(將會更小)。

還有關於how to call .net dll from SQL的教程,但我不知道有足夠的建議。

相關問題