以下の画像の SQL ステートメントを使用して、SQL サーバーに接続し、複数のテーブルからデータを選択したいと考えています。SQL 接続情報はテーブルに格納されます。最後に、 からのすべてのデータを表示したいと思いdatagridview
ます。
2497 次
2 に答える
1
同じ接続内の異なるサーバーで SQL クエリを実行することはできません。ループを作成できます。反復ごとに、接続文字列を変更し、クエリを実行し、結果をデータテーブルにロードします。
List<string> lstSQLConStr = new List<string>();
lstSQLConStr.Add(@"Server=myServerAddress1;Database=myDataBase;User Id=myUsername;Password=myPassword;");
lstSQLConStr.Add(@"Server=myServerAddress2;Database=myDataBase;User Id=myUsername;Password=myPassword;");
lstSQLConStr.Add(@"Server=myServerAddress3;Database=myDataBase;User Id=myUsername;Password=myPassword;");
lstSQLConStr.Add(@"Server=myServerAddress4;Database=myDataBase;User Id=myUsername;Password=myPassword;");
string cmd = "SELECT * FROM BOOKS1 UNION SELECT * FROM BOOKS2 UNION SELECT * FROM BOOKS3";
SqlConnection sqlCon = null;
SqlCommand sqlCmd = null;
DataTable dtResult = new DataTable();
for (int i = 0; i < lstSQLConStr.Count; i++)
{
using (sqlCon = new SqlConnection(lstSQLConStr[i]))
{
sqlCon.Open();
using (sqlCmd = new SqlCommand(cmd, sqlCon))
{
sqlCmd.CommandType = CommandType.Text;
using (SqlDataReader dataReader = sqlCmd.ExecuteReader())
{
dtResult.Load(dataReader);
}
}
}
}
//here dtResult contains all results.
于 2013-05-24T06:01:00.377 に答える