通常,當我需要使用C#連接到數據庫時,我會使用下面的命令例程:
- 定義一個mysql連接。
- 打開一個mysql連接。
- 定義一個sql語句/查詢。
- 使用MySqlCommand執行查詢。如何連接到C#中的一個連接字符串中的兩個數據庫?
樣品代碼:
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是要用於查詢的連接。
如何在一個sql語句中查詢兩個數據庫?
考慮以下幾點:?(我使用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#中,我相信。鏈接服務器是一種方法。或者,您可以從兩臺服務器獲取結果(通過兩個連接字符串),然後根據需要在程序中處理數據。我相信還有其他的選擇,這些只是立即想到的兩個。 – Tim 2013-05-02 07:05:21
使用兩個連接並使用Linq加入。看到http://stackoverflow.com/questions/4278993/is-it-possible-to-perform-joins-across-different-databases-using-linq – Morten 2013-05-02 07:11:26