2013-01-09 186 views
0

我打算設計一個應用程序,它將從位於不同服務器上的公共數據庫中獲取數據。從多個服務器上的sql數據庫獲取數據

例如:在服務器

  • 數據庫A SQLSRV001
  • 在服務器SQLSRV002
  • 等數據庫A

我有一個SQL SELECT查詢是在數據庫A被執行位於在不同的服務器。

select * from Database A where column1='' and column2='' 

我想知道是否有可能創建一個動態連接的對象以使得它使用相同的選擇查詢,並採取一些服務器數量的用戶(或硬編碼)輸入。它執行數據庫中的select查詢並返回結果。然後將下一個服務器號碼作爲輸入,獲取數據等。這一直持續到所有的服務器號碼都完成爲止。

對此的任何見解都會很樂意接受。

回答

0

是的,你確實可以做到這一點...... 創建一個新的類,並使其成爲SQLConnection類型的對象或者它是。

它的目的應該是創建和維護與數據庫的連接並執行各種任務(這部分是可選的,因爲您可以直接傳遞查詢)。

從網上

class DBConnect 
{ 
    private MySqlConnection connection; 
    private string server; 
    private string database; 
    private string uid; 
    private string password; 

    //Constructor 
    public DBConnect() 
    { 
     Initialize(); 
    } 

    //Initialize values 
    private void Initialize(String[] connectionInfo) 
    { 
     server = connectionInfo[0]; 
     database = connectionInfo[1]; 
     uid = connectionInfo[2]; 
     password = connectionInfo[3]; 
     string connectionString; 
     connectionString = "SERVER=" + server + ";" + "DATABASE=" + 
     database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; 

     connection = new MySqlConnection(connectionString); 
    } 

    //open connection to database 
    private bool OpenConnection() 
    { 
    } 

    //Close connection 
    private bool CloseConnection() 
    { 
    } 

    //Insert statement 
    public void Insert() 
    { 
    } 

    //Update statement 
    public void Update() 
    { 
    } 

    //Delete statement 
    public void Delete() 
    { 
    } 

    //Select statement 
    public List <string> [] Select() 
    { 
    } 

    //Count statement 
    public int Count() 
    { 
    } 

    //Backup 
    public void Backup() 
    { 
    } 

    //Restore 
    public void Restore() 
    { 
    } 
} 

得到這個所以,當你有不同的數據庫,你可以去,如:

DBConnect srv001 = new DBConnect({server1,db1,uid1,pw1}); 
DBConnect srv002 = new DBConnect({server2,db2,uid2,pw2}); 

所以,現在你有2個不同的數據庫

2個併發連接