峰峦@叠嶂 2024-12-31 16:31 采纳率: 98%
浏览 5
已结题

从两个数据库的数据表,联合查询的内容,显示在dgv上,请问怎么处理

请问一下,C#,我需要分别从两个SQL SERVER数据库的数据表,得到不同的数据,显示在一个dgv内,请问以下代码应该怎么修改,敬请指导;

private void btnquery_Click(object sender, EventArgs e)
{            
    using (SqlConnection Conn1 = new SqlConnection("server=192.168.100.247;database=WHMesInfo;user=sa;password=whyy@2021"))
    using (SqlConnection Conn2 = new SqlConnection("server=192.168.2.5;database=AIS20150211135927;user=sa;password=zzwrcwzx"))
    {
        Conn1.Open();
        Conn2.Open();

        string sqlstring = @"select distinct t3.FName as proName,t3.Fmodel as Fmodel,sum(t1.FQty) as amount from 
                           AIS20150211135927.dbo.ICStockBill t2 

                            join AIS20150211135927.dbo.ICStockBillEntry t1 on t1.FInterID = t2.FInterID 
                            join AIS20150211135927.dbo.t_icitem t3 on t3.FItemID = t1.FItemID
                            join AIS20150211135927.dbo.ICTransactionType t5 on t2.FTranType=t5.FID
                            join AIS20150211135927.dbo.t_StockPlace t4 on t4.FSPID = t1.FDCSPID
                            join WHMesInfo.dbo.w_target t5 on t5.proName = AIS20150211135927.dbo.t3.FName 
                            join WHMesInfo.dbo.w_target t5 on t5.spec = AIS20150211135927.dbo.t3.FModel 

                            where t2.FTranType = '2' and (t4.FSPID = '2' or t4.FSPID = '1')  and t2.FDate = '2024-12-27'

                            group by t3.FName,t3.FModel";

        SqlCommand cmd = new SqlCommand(sqlstring, Conn2);

        SqlDataAdapter sda = new SqlDataAdapter(cmd);

        DataTable dt = new DataTable();

        sda.Fill(dt);

        dataGridView1.DataSource = dt;                    

    }

}


  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-12-31 16:35
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    首先,根据代码提供的内容,可以看出您想要从两个不同的SQL SERVER数据库分别获取数据,并将结果显示在一个DataGridView中。在目前的代码中,您已经建立了两个不同的连接(Conn1和Conn2),并且使用了Conn2来执行SQL查询以获取数据。 接下来,您需要将获取的数据合并到一个数据表中,然后显示在DataGridView中。您可以使用以下步骤来实现这一目标:
    1. 创建一个新的DataTable来存储从两个数据库中获取的数据:
    DataTable combinedDataTable = new DataTable();
    
    1. 使用第一个连接(Conn1)执行第一个查询,并将结果存储到新的DataTable中:
    string sqlString1 = @"SELECT * FROM Table1";
    SqlCommand cmd1 = new SqlCommand(sqlString1, Conn1);
    SqlDataAdapter sda1 = new SqlDataAdapter(cmd1);
    DataTable dt1 = new DataTable();
    sda1.Fill(dt1);
    //将查询结果添加到combinedDataTable中
    combinedDataTable.Merge(dt1);
    
    1. 使用第二个连接(Conn2)执行第二个查询,并将结果存储到新的DataTable中:
    string sqlString2 = @"SELECT * FROM Table2";
    SqlCommand cmd2 = new SqlCommand(sqlString2, Conn2);
    SqlDataAdapter sda2 = new SqlDataAdapter(cmd2);
    DataTable dt2 = new DataTable();
    sda2.Fill(dt2);
    //将查询结果添加到combinedDataTable中
    combinedDataTable.Merge(dt2);
    
    1. 最后,将合并后的数据表(combinedDataTable)绑定到DataGridView中:
    dataGridView1.DataSource = combinedDataTable;
    

    通过这些修改,您可以从两个不同的SQL SERVER数据库中获取数据,并将合并后的结果显示在一个DataGridView中。请根据实际情况修改SQL查询语句以及表名等内容。希望以上回答对您有帮助。如果有任何疑问,请随时提出。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月8日
  • 已采纳回答 12月31日
  • 修改了问题 12月31日
  • 创建了问题 12月31日