【C#入門】複数のデータベースをDataGridViewで扱う方法
開発において複数のデータベースを扱う場面は少なくありません。特に、異なるデータソースを統合する場合は**DataGridView** を使うことで便利に表示できます。本記事では、複数のデータベースを切り替えたり統合したりする方法を解説します。
1. 複数の接続文字列を管理する
まず、`app.config` に接続情報をまとめて管理し、プログラム内で適切に利用します。
<connectionStrings>
<add name="DB1" connectionString="Server=myServer;Database=DB1;User Id=myUser;Password=myPass;" providerName="System.Data.SqlClient"/>
<add name="DB2" connectionString="Server=myServer;Database=DB2;User Id=myUser;Password=myPass;" providerName="System.Data.SqlClient"/>
</connectionStrings>
2. DataGridViewにデータを統合表示する
異なるデータベースのデータをまとめて表示するには、`DataTable` を活用します。
using (SqlConnection conn1 = new SqlConnection(connStr1))
using (SqlConnection conn2 = new SqlConnection(connStr2))
{
conn1.Open();
conn2.Open();
DataTable dt = new DataTable();
using (SqlDataAdapter da1 = new SqlDataAdapter("SELECT ID, Name FROM Users", conn1))
using (SqlDataAdapter da2 = new SqlDataAdapter("SELECT ID, Name FROM Employees", conn2))
{
da1.Fill(dt);
da2.Fill(dt);
}
dgv.DataSource = dt;
}
3. データベースを切り替えて表示する
ユーザーの選択に応じてデータベースを切り替えるには、ボタンを活用できます。
private void LoadDatabase(string dbName)
{
string connStr = ConfigurationManager.ConnectionStrings[dbName].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
DataTable dt = new DataTable();
using (SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM DataTable", conn))
{
da.Fill(dt);
}
dgv.DataSource = dt;
}
}
private void btnDB1_Click(object sender, EventArgs e)
{
LoadDatabase("DB1");
}
private void btnDB2_Click(object sender, EventArgs e)
{
LoadDatabase("DB2");
}
4. まとめ
複数のデータベースを扱う際は、**接続文字列の管理** と **DataTableの統合** がポイントになります。DataGridViewを活用すると、データの整理や検索が容易になります。