본문 바로가기
MySql

MySQL 여러 테이블의 데이터를 dataGridView에 표시하는 방법

by 베이스 공부 2020. 12. 10.
반응형

하나의 dataGridView에 전화 번호부와 이메일 데이터를 표시하고 싶습니다. 문제는 이메일 테이블 만 표시된다는 것입니다.

MySqlConnection connection = new MySqlConnection(MyConnectionString);
connection.Open();
try
{
    MySqlCommand cmd = connection.CreateCommand();
    cmd.CommandText = "SELECT * FROM phonebook";
    cmd.CommandText = "SELECT * FROM email";
    MySqlDataAdapter adap = new MySqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    adap.Fill(ds);
    dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
catch(Exception ex)
{
    MessageBox.Show(ex.Message);
}
finally
{
    if (connection.State == ConnectionState.Open)
    {
        connection.Clone();
    }
}

 

해결 방법

 

두 테이블을 조인하고 아래와 같이 결과를 가져와야합니다.

using(MySqlConnection connection = new MySqlConnection(MyConnectionString))
using(MySqlCommand cmd = connection.CreateCommand())
{
    connection.Open();
    cmd.CommandText = "SELECT pb.Id, pb.Name, pb.MobileNo, e.email FROM phonebook pb INNER JOIN email e ON e.Id= pb.Id";
    MySqlDataAdapter adap = new MySqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    adap.Fill(ds);
    dataGridView1.DataSource = ds.Tables[0].DefaultView;
}

 

참조 페이지 https://stackoverflow.com/questions/21647363

 

 

반응형

댓글