我有一個C#winforms應用程序,它具有單個datagridview來顯示mySQL數據庫中表的內容。 datagridview是否可以實時反映數據庫的變化?即當我直接對錶格進行更改時,它將顯示數據網格視圖中的更改當數據庫綁定的數據庫被更新時,是否可以讓datagridview自動更新?
2
A
回答
-1
有可能,當前是可取的,可能不是。您正在尋找的技術被稱爲「comet」,並且是服務器推送類型的體系結構。在網絡應用程序中,這違背了當前支持的內容,可靠且易於維護。選項包括從瀏覽器運行網絡服務器,並進行回調和持久的xmpp對話,但沒有任何真正有吸引力的,除非你現在絕對需要這種行爲。
HTML 5與web sockets即將到來,應該使這種理想的行爲更容易獲得,但它可能需要幾年才廣泛的支持。
考慮使用ajax輪詢webservice並進行選擇性部分頁面刷新而不是實現真正的http推送體系結構。
0
簡短的回答是否定的。你必須實施某種輪詢機制。
如果此功能對您的應用程序非常重要,SQL Server 2008 R2有一項名爲StreamInsight的技術,它允許您在數據庫級別觀察數據流(甚至在它碰到磁盤之前)並觸發事件理論上它可能會使用一種機制來觸發應用程序中的更新。我相當確定MySQL不包含可比較的技術。
這些也只是「接近實時」。我猜你的意思是你想要數據網格更新,只要有新的數據,這不會是實時的。
0
這在理論上是可能的,但是非常尷尬,並且感覺不太適合使用數據庫。一般來說,數據庫是實時數據的重要來源。如果您需要實時數據,您應該使用實時推送數據源(有一大堆數據源,主要針對財務數據)。
我已經實現了一個使用更新觸發器和本地存儲過程的系統(在SQL服務器中,不是MySQL,但也許你可以做同樣的事情)。本地存儲過程只是一個非託管代碼DLL,它實現了一個特定的接口和一個可以從SQL觸發器中調用的接口。
事件的順序大致如下:
- 託管代碼打開文件系統上的約定文件(可以稱之爲「觀察」的文件),與
FileSystemWatcher
,並設置一個回調,當文件被改變。 - 更新觸發器觸發並調用本機存儲過程。
- 本機存儲過程「觸摸」監視文件,更新其數據修改字段。
FileSystemWatcher
觸發回調,之後我們知道數據已更改,因此我們從數據庫中重新加載它。
0
0
看看BindingSource和INotifyPropertyChanged(爲您的對象)。
相關問題
- 1. 更新數據庫更改時的datagridview
- 2. 數據庫更新後自動刷新數據綁定組件
- 3. DataGridView更新數據庫
- 4. 從datagridview更新數據庫
- 5. 從DataGridView更新更新Access數據庫
- 6. Android:當數據庫綁定到更改的數據庫時,Listviews可以動態更新UI輸出嗎?
- 7. 當服務器數據庫更新時更新sqlite數據庫
- 8. 數據庫自動更新
- 9. 數據庫更改時可以自動更新圖形嗎?
- 10. NullReferenceException從datagridview更新數據庫時
- 11. 在數據庫更改時更新ASP.NET數據綁定GridView
- 12. 當數據更新到數據庫時自動更新jsp頁面
- 13. EF 4中的.edmx更改是否自動更新數據庫?
- 14. 數據庫更新後自動刷新
- 15. 更新的DataGridView綁定到數據表
- 16. 是否可以定期更新數據庫
- 17. 的WinForms DataGridView的 - 更新數據庫
- 18. 從datagridview更新數據庫中的值
- 19. 更新命令中的datagridview數據庫
- 20. 數據庫更新時的Ajax自動更新
- 21. 更新Datatable和DatagridView與數據庫由定時器更改
- 22. 綁定DataGridView不更新數據源
- 23. 是否有可能讓用戶只更新數據庫2天?
- 24. datagridview綁定到實體沒有更新數據庫
- 25. Android SimpleCursorAdapter數據庫更新時更新
- 26. 更新數據庫同時更新apk
- 27. Android和自動更新的數據庫
- 28. 更新數據庫時自動更新網頁
- 29. 從Datagridview更新MS Access數據庫
- 30. 通過dataGridView更新數據庫
他說的是Winforms,而不是Webforms。 – 2010-09-23 00:11:09
哎呀...我的回答完全無關:( – Tahbaza 2010-09-23 01:03:47