如何在一个datagridview c#上合并2个数据库

时间:2014-05-25 15:44:39

标签: c# sql

在一种形式中我有2个DGV和2个数据库!,一个用于查看事务,一个用于查看标题详细信息(我只能显示一个事务)但我无法显示另一个显示标题详细信息

如何将来自不同数据库的2个主键或ID的数据合并到一个View Form中的DataGridView中?

这是我的代码:

    public HistoryTransaction()
    {
        InitializeComponent();
    }

    private void HistoryTransaction_Load(object sender, EventArgs e)
    {
        //this is to get data from database
        dataSource = con.executeQuery("SELECT * FROM TrHeaderTransaction");
        dataGridView1.DataSource = dataSource;

        dataSource2 = con.executeQuery("SELECT * FROM TrDetailTransaction");
        dataGridView2.DataSource = dataSource2;

        //to select data into dataTable
        DataTable obj = con.executeQuery("SELECT * FROM TrHeaderTransaction");
        for (int i = 0; i < obj.Rows.Count; i++)
        {
            transBox.Items.Add(obj.Rows[i].ItemArray[0].ToString());
        }
        transBox.SelectedIndex = 0;
    }

    private void CloseBtn_Click(object sender, EventArgs e)
    {
        this.Close();
    }

2 个答案:

答案 0 :(得分:0)

我相信您需要在数据库中进行联接:

SELECT * FROM TrHeaderTransaction, TrDetailTransaction 
  WHERE TrHeaderTransaction.ID = TrDetailTransaction.HeaderID

当然,不知道你的字段的名字,我不能给出确切的SQL。

您还可以使用Join语法。

答案 1 :(得分:0)

根据您的要求我能理解的是,您要么寻找数据库解决方案,如下所示:

enter code here

SELECT h.*,d.* FROM TrHeaderTransaction h, TrDetailTransaction d
 WHERE h.TrHeaderTransaction.ID = d.TrDetailTransaction.ID and 
 h.TrHeaderTransaction.SID = d.TrDetailTransaction.ID

 or 

 Alternatively you can do the same using datatables at the front end;