通常、C#を使用してデータベースに接続する必要がある場合は、以下のコマンドルーチンを使用します。
- mysql接続を定義します。
- mysql接続を開きます。
- SQL文/クエリを定義します。
- MySqlCommandを使用してクエリを実行します。C#で1つの接続文字列で2つのデータベースに接続するにはどうすればよいですか?
サンプルコード:
string con1 = "server=<db1 IP>;User Id=user;password=password;Persist Security Info=True;database=db1";
string con2 = "server=<db2 IP>;User Id=user;password=password;Persist Security Info=True;database=db2";
MySqlConnection cn1 = new MySqlConnection(con1);
MySqlConnection cn2 = new MySqlConnection(con2);
MySqlCommand com
cn1.Open();
string sql = "some query";
com = new MySqlCommand(sql, cn1);
com.executeNonQuery();
cn1.Close();
私の問題は、上記のそれが今どのデータベース好きに照会しますように、データベース接続が表示され、それがあるので、私はされたMySqlCommandコマンドを使用する一部の上にある
MySqlCommand com = new MySqlCommand(sql, con);
ここで、sqlはSQL文であり、conはクエリに使用される接続です。
1つのSQL文で2つのデータベースをクエリするにはどうすればよいですか? ?(私はMySQLを使用しています)
- I have two databases, db1 and db2.
- db1 is located in City A
- db1 is located in City B
- Both databases have one table (tbl) and they both have the same structure.
- Table structure for tbl:
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| id | int(9) | NO | PRI | | |
| ref_no | int(9) | NO | | | |
| name | varchar(10) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
- I want to run a query on db1.tbl against db2.tbl
- Example query: "select ref_no from db1.tbl where ref_no not in (select ref_no from db2.tbl)"
それとも、この種の問題のための別の方法がある...
これはC#ではなく、データベースサーバーレベルで設定する必要があります。リンクサーバーはそれを行うための一つの方法です。または、2つの接続文字列を使用して両方のサーバーから結果を取得し、プログラムで必要に応じてデータを操作することもできます。私は他のオプションもあると確信していますが、これはすぐに思い浮かぶ2つのものです。 – Tim
2つの接続を使用し、Linqを使用して結合します。 http://stackoverflow.com/questions/4278993/is-it-possible-to-perform-joins-across-different-databases-using-linqを参照してください – Morten