有的時候我們需要跨域資料庫查詢資料,有的時候甚至要跨主機,并且将集中顯示在一張Talbe上,然後在前台現實出來,顯然難度是很大的,在網上搜了一下,找了一些解決方案,如:
方式一:你可以使用存儲過程在存儲過程中進行兩個資料庫之間表的聯合查詢,不過要說明一點這兩個資料庫最好放在同一台機器上,如果通過網絡連接配接的話網絡使用者的讀寫是有限制的
方式二:Web.config中寫上兩個資料庫的查詢,然後資料聯合的部分可以使用DataSet,用DataSet來組裝不同的資料源資料,然後進行輸出!
以上方式,自我感覺不合理,而且不符合我的要求,現在剛好我要做的是跨伺服器,跨資料庫的查詢,沒辦法,自己想了一個辦法,現在貼上來,與大家分享:
條件和目的:
server1:192.168.0.1 database:DB1 表A(id,name,sex,ip) //通過ip的關聯查出使用者在“DB2庫”中資訊的mac和使用者電腦的名字ComputerName
Server2:192.168.0.2 database:DB2 表B(ip,mac,ComputerName)
思想:
普通gridview顯示出表A的所有符合條件資料(凡是做過asp.net,這都是菜),我們知道gridview是被 .net Framework轉換以表格的形式顯示的,當頁面加載完畢後
我們通過JQury 的$("#GridViewID")擷取表格的ip列的所有ip值,這樣就有了要查詢條件的Ip了,然後我們通過JQury的Ajax操作方法“getJSON()”方法将擷取的ip值以參數的形式傳到Handler.ashx(用來查詢DB2中資料的),之後hander.ashx查詢出資料後,将資料清單封裝為“Json資料”,将Josn資料傳回給getJSON()方法,到此為止我們就得到了B表中的資料,之後通過getJSON()方法處理得到的資料,并且通過JQuery在gridview上動态添加列,将傳回的資料插準确的插入到動态添加的列中,那麼就完成了我們的目的
缺點和優勢:
先顯示A表的資料,然後一會才會現實出B表的資料,當然B表的資料是通過AJAX傳回的,隻要稍加一些Ajax效果,用以緩解使用者的忍耐,畢竟這是Ajax的好處了,異步處理資料麼,對不?
好了,思想我已經說玩了,如果有感興趣的同學,可以跟着我的思想做一下試試啊。
若有需要的,我可以把源碼貼上,今天沒時間了,呵呵!