求助:查询两个SQL数据库的两个不同表的数据到dataGridView里

学习C#+SQL 2017-07-03 03:49:46
现有同一类数据分别存在两个不同的数据库的不同表里。数据内容一样,但两个表的字段名不同。
在textBox1里输入要模糊查询的内容,从两个库/两个表里查出来给dataGridView1。

数据库1:AA 数据库:GM
表1:xsact 表2:stockin


下面是我的代码,不能两个表同时查询出来给dataGridView1。请各位大侠帮忙看下怎么弄。
DataTable dt = new DataTable();
DataTable dt1 = new DataTable();
string connsql = "server=192.168.123.3;database=aa;user=sa;pwd=sa";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connsql;
conn.Open();

//用SQL语句查询XSCAT表里的所需数据,并将数据值赋于myda变量,将myda变量的数据赋于dt变量,将dt变量的数据赋于datadataGridView1
string sql = "select s.fapiaohao,s.idate,s.porder,s.code,h.name,cast(s.jitu0 as int) as jitu0,s.aprice,s.kounyuugaku from xsact s,xhead h where s.code=h.code and s.fapiaohao like '%" + textBox1.Text + "%'";
SqlDataAdapter myda = new SqlDataAdapter(sql, conn);
myda.Fill(dt);
dataGridView1.DataSource = dt;
this.dataGridView1.AllowUserToAddRows = false; //不显示dataGridView1的最后一行(空行)
dt.DefaultView.Sort = "idate"; //以发票号从小到大排序

//声明一个sum变量,用于汇总dataGridView1里查询到的jitu0数量并赋给textBox3
double sum = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
sum += Convert.ToDouble(dataGridView1.Rows[i].Cells[5].Value);
}
textBox2.Text = sum.ToString(); //将sum变量汇总到的dataGridView1数据赋值给textBox2

double sum1 = 0;
for (int j = 0; j < dataGridView1.Rows.Count; j++)
{
sum1 += Convert.ToDouble(dataGridView1.Rows[j].Cells[7].Value);
}
textBox3.Text = sum1.ToString();
conn.Close();

//查询stockin表的数据
string connsql1 = "server=192.168.123.3;database=gm;user=sa;pwd=sa";
SqlConnection conn1 = new SqlConnection();
conn1.ConnectionString = connsql1;
conn1.Open();
string sql1 = "select invno as fapiaohao,crtdate as idate,porder,itemcode as code,itemname as name,cast(qty as int) as jitu0,price as aprice from stockin where invno like '%" + textBox1.Text + "%'";
SqlDataAdapter myda1 = new SqlDataAdapter(sql1, conn1);
myda1.Fill(dt1);
dataGridView1.DataSource = dt1;
this.dataGridView1.AllowUserToAddRows = false; //不显示dataGridView1的最后一行(空行)
dt1.DefaultView.Sort = "idate"; //以发票号从小到大排序
conn1.Close();
...全文
395 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋的红果实 2017-07-05
  • 打赏
  • 举报
回复
要养成及时结帖的好习惯
学习C#+SQL 2017-07-04
  • 打赏
  • 举报
回复
谢谢前辈指明思路!! 按下面的语句可以查询两个不同数据库的不同表了。 string sql = "select s.fapiaohao,idate=left(s.idate,8),s.porder,s.code,h.name,cast(s.jitu0 as int) as jitu0,s.aprice,kounyuugaku=convert(decimal(10,2),s.kounyuugaku) from aa.dbo.xsact s,xhead h where s.code=h.code and s.fapiaohao like '%" + textBox1.Text + "%' " + "union all select invno as fapiaohao,idate=convert(varchar(10),crtdate,112),porder,itemcode as code,itemname as name,cast(qty as int) as jitu0,price as aprice,kounyuugaku=convert(decimal(10,2),qty*price) from gm.dbo.stockin where invno like '%" + textBox1.Text + "%'";
大然然 2017-07-03
  • 打赏
  • 举报
回复
引用 5 楼 xiang1434 的回复:
string sql = "select s.fapiaohao,s.idate,s.porder,s.code,h.name,cast(s.jitu0 as int) as jitu0,s.aprice,s.kounyuugaku from AA.xsact s,AA.xhead h where s.code=h.code and s.fapiaohao like '%" + textBox1.Text + "%'"+ "union select invno as fapiaohao,crtdate as idate,porder,itemcode as code,itemname as name,cast(qty as int) as jitu0,price as aprice from GM.stockin where invno like '%" + textBox1.Text + "%'"; 提示AA.xsact无效,是为什么啊? 数据库连接代码为:string connsql = "server=192.168.123.3;database=aa;user=sa;pwd=sa"; (即连接的AA数据库)
你要举一反三啊,你楼上那位只是给你一个思路, 那个AA是别名,他随便打的,你要自己改你的sql啊
秋的红果实 2017-07-03
  • 打赏
  • 举报
回复
AA.dbo.xsact GM.dbo.stockin string connsql = "server=192.168.123.3;database=AA;user=sa;pwd=sa";
学习C#+SQL 2017-07-03
  • 打赏
  • 举报
回复
string sql = "select s.fapiaohao,s.idate,s.porder,s.code,h.name,cast(s.jitu0 as int) as jitu0,s.aprice,s.kounyuugaku from AA.xsact s,AA.xhead h where s.code=h.code and s.fapiaohao like '%" + textBox1.Text + "%'"+ "union select invno as fapiaohao,crtdate as idate,porder,itemcode as code,itemname as name,cast(qty as int) as jitu0,price as aprice from GM.stockin where invno like '%" + textBox1.Text + "%'"; 提示AA.xsact无效,是为什么啊? 数据库连接代码为:string connsql = "server=192.168.123.3;database=aa;user=sa;pwd=sa"; (即连接的AA数据库)
学习C#+SQL 2017-07-03
  • 打赏
  • 举报
回复
From_TaiWan 我先试作操作下。
秋的红果实 2017-07-03
  • 打赏
  • 举报
回复
两个数据库在一个sql服务器上的话,因为你数据结构一致,可以用union,将两个表“合并”,然后查询,绑定 类似 select col1,col2,col3 from AA.xsact union select col1,col2,col3 from GM.stockin 如果两个数据库不在一个sql服务器上,需要建立链接服务器
正怒月神 2017-07-03
  • 打赏
  • 举报
回复
我也不太明什么意思
xdashewan 2017-07-03
  • 打赏
  • 举报
回复
什么叫同时查出,什么又是不能给dataGridView1

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧