从多个服务器的sql数据库中获取数据

时间:2013-01-09 20:06:52

标签: c# sql sql-server database-connection

我计划设计一个应用程序,它将从位于不同服务器的公共数据库中获取数据。

前:

  • 服务器SQLSRV001中的数据库A
  • 服务器SQLSRV002中的数据库A

我有一个sql select查询,它将在位于不同服务器的数据库A中执行。

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

我想知道是否可以创建动态连接对象,使其使用相同的select查询并将多个服务器编号作为用户(或硬编码)输入。它在数据库中执行select查询并返回结果。然后将下一个服务器编号作为输入,取出数据等等。这一直持续到所有服务器编号都完成为止。

对此的任何见解都会很乐意接受。

1 个答案:

答案 0 :(得分:0)

是的,你确实可以做到这一点...... 创建一个新类,并使其成为SQLConnection类型的对象或w / e它。

它的目的应该是创建和维护与数据库的连接并执行各种任务(这部分是可选的,因为您可以直接传入查询)。

从网上获得

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个不同的数据库