![](/img/trans.png)
[英]Datagridview in winforms application updated automatically when there is any change in database
[英]is it possible to have a datagridview automatically update when the database it is bound to gets updated?
我有一個C#winforms應用程序,該應用程序具有一個datagridview來顯示mySQL數據庫中表的內容。 是否有可能使datagridview實時反映對數據庫的更改? 即當我直接對表進行更改時,它將在datagridview中顯示該更改
最簡潔的答案是不。 您將必須實現某種輪詢機制。
如果此功能對您的應用程序非常重要,則SQL Server 2008 R2擁有一項稱為StreamInsight的技術,該技術可讓您在數據庫級別監視數據流(甚至在它到達磁盤之前)並觸發事件,並且從理論上講可能可以使用一種機制來觸發應用程序中的更新。 我相當確定MySQL並不包含可比的技術。
這些也只是“近實時”。 我猜您的意思是您希望只要有新數據(不是實時的)就更新datagrid。
從理論上講,這是可能的,但是非常尷尬,並且對使用數據庫不是很自然。 一般來說,數據庫是實時數據的重要來源。 如果您需要實時數據,則應使用實時推送數據源(其中有很多,主要用於財務數據)。
我已經使用更新觸發器和本機存儲過程實現了一個系統(在SQL Server中,而不是MySQL,但您也可以這樣做)。 本機存儲過程只是實現了特定接口和可以從SQL觸發器調用的一個非托管代碼DLL。
事件的順序大致如下:
FileSystemWatcher
在文件系統上打開一個約定的文件(稱為“監視”文件),並在文件更改時設置回調。 FileSystemWatcher
觸發一個回調,此后我們知道數據已更改,因此我們從數據庫中重新加載了數據。 看一下BindingSource和INotifyPropertyChanged(針對您的對象)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.