2013-03-22 39 views
0

嘿,我需要一些幫助,我正在開發一個vb.net桌面應用程序使用Visual Studio 2010和MySQL v5.5的數據庫將位於主服務器中,因此應用程序將不得不與數據庫進行通信以獲取/發佈信息。如何在我的vb.net應用程序中捕獲mysql觸發器和存儲過程?

但我的問題是,我希望我的應用程序能夠實時更新數據庫內容,以便如果user1更新數據庫,它會立即反映在user2的應用程序中。我已閱讀文章,建議在MySQL語法中使用觸發器和存儲過程來做到這一點,但我不知道這將如何工作。

我有一個名爲'Store'的表,當用戶在表格存儲中輸入一個項目時,我希望應用程序知道它並更新列表框或數據網格中的項目及其內容。

如何在vb.net代碼中捕獲這些事件?

我希望我清楚,如果不是請問。所有的建議將受到高度讚賞!

+0

你在哪裏添加項目到表中?它是否來自您的應用程序? – Dilshod 2013-03-22 14:19:27

+0

看看這個:http://answers.yahoo.com/question/index?qid=20120805164032AAIHvn4 – Dilshod 2013-03-22 14:30:29

+0

是的,我從應用程序的形式添加項目 – user2181140 2013-03-22 14:50:36

回答

1

我認爲解決問題最簡單的方法是定期從服務器獲取記錄並適當地更新本地列表。在您的客戶端應用程序中,您可以在上次更新列表時存儲該列表,並在執行get操作時將其作爲參數發送並獲取在該時間之後創建的所有項目(這樣您只能獲得新項目)。

另一個可能的解決方案是將客戶端註冊到服務器應用程序(以便服務器跟蹤所有客戶端),並且當您創建新記錄時,將該新記錄發送給所有客戶端,這將聽取爲那個事件。

在您的情況下,很難說出「最佳」方法。你的代碼是如何設計的(什麼是架構)?客戶端和服務器應用程序之間的連接是否持久您的客戶端應用程序是否有一個服務器應用程序與每個客戶端直接對話?

+0

我曾想過,但我試圖找到一種方法來緩解網絡通過應用程序的流量,此外它是一個庫存應用程序,因此當用戶在不同的(幾乎相似)時間輸入來自不同客戶端的數據時,如果不同步,則可能會發生重複條目,導致引發異常。在我的應用程序中,我執行一次查詢並將結果存儲在整個應用程序中使用的數組中,每個客戶端都直接與數據庫通信。 – user2181140 2013-03-22 14:54:54

+0

每個客戶端是否直接與數據庫通信? – spullen 2013-03-22 14:56:44

+0

我認爲您最好的選擇是使用輪詢來刷新您的情況中的數據,實際上我認爲沒有辦法繞過它。 我不相信有一種方法來偵聽數據庫觸發器。 如上所述,唯一的其他解決方案是如果您有一個可以正確處理請求的中間服務器應用程序,例如發送到應用程序服務器進行處理的所有創建請求,然後將響應發送回所有連接的客戶端(如果創建成功)。這看起來好像還有很多工作要做。 – spullen 2013-03-22 15:03:11