| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1429 人关注过本帖
标题:[求助]两个表比较,如果表B中的记录已经在表A中存在,则表A中不显示表B的记 ...
只看楼主 加入收藏
okkenking
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2007-5-10
收藏
 问题点数:0 回复次数:10 
[求助]两个表比较,如果表B中的记录已经在表A中存在,则表A中不显示表B的记录,然后

表A
id code name
1 a 一
2 b 二
3 c 三
4 d 四
5 e 五

-------------------
表B
id code name
1 a 一
3 c 三

使dataGridView只绑定
id code name
2 b 二
4 d 四
5 e 五

注:两个表分属不同的服务器和数据库

[此贴子已经被作者于2007-10-11 10:12:10编辑过]

搜索更多相关主题的帖子: 记录 
2007-10-11 10:11
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
收藏
得分:0 

用NOT IN 语句来处理


XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2007-10-11 10:15
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
收藏
得分:0 
这个问题只需要在select的where子句中有NOT IN就可以了

比如SELECT * FROM A WHERE id NOT IN (SELECT id FROM B)

有实力才会有魅力 实力来自坚持不懈的努力
2007-10-11 10:18
okkenking
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2007-5-10
收藏
得分:0 
感谢回复,上面的方法我知道,

问题是两个表分属不同的服务器和数据库
比如表A在服务器1上,表B在服务器2上



2007-10-11 10:24
crazymk
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2007-8-30
收藏
得分:0 

那只能分別取出來放到兩個datatable裡然後再查詢了。


すばらしいコードを書き出すのは楽しい事です
2007-10-11 10:49
okkenking
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2007-5-10
收藏
得分:0 
回复:(crazymk)那只能分別取出來放到兩個datatable...
两个datatable 怎么进行比较 
再赋给dataGridView????????

2007-10-11 12:56
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
把两个表中的数据读到两个DataTable中,然后让表2中的所有数据一条一条地在表1中进行查询,如果不存在,就把数据添加到表3中,最后让这个表3来绑定dataGridView。
这样肯定可以实现的,但是如果数据量过多的话,会很慢的。

飘过~~
2007-10-11 13:10
okkenking
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2007-5-10
收藏
得分:0 
回复:(bygg)把两个表中的数据读到两个DataTable中,...
表A的数据包含表B的数据,也就是B的数据A都有的,且B的数据不多10条左右.

2007-10-11 13:18
okkenking
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2007-5-10
收藏
得分:0 
".....然后让表2中的所有数据一条一条地在表1中进行查询"
具体怎么做到

可以给个提示吗?

2007-10-11 13:28
okkenking
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2007-5-10
收藏
得分:0 

private void getCompare()
{
//两个结构一样的DT合并
DataTable dt1 = new DataTable();
string strsql = "";
string strday = DateTime.Now.Date.ToString("yyyyMMdd").Trim();//取系统时间-年月日
strsql = "select cast(0 as bit) '选项',ltrim(rtrim(MA001)) '客户编号',ltrim(rtrim(MA003)) '客户名称' from COPMA ";
strsql += "where MA068>='" + strday + "'";
dt1 = dcns.ExeDataTable(strsql, 3);


DataTable dt2 = new DataTable();
string strsql2 = "";
strsql2 = "select cast(0 as bit) '选项',ltrim(rtrim(C_id)) '客户编号',ltrim(rtrim(C_name)) '客户名称' from TabCust ";
strsql2 += "where W_id=0 and W_isok=0";
dt2 = dcns.ExeDataTable(strsql2, 1);
DataTable newdt = dt1.Clone();

object[] obj = new object[newdt.Columns.Count];
for (int i = 0; i < dt1.Rows.Count; i++)
{
dt1.Rows[i].ItemArray.CopyTo(obj,0);
newdt.Rows.Add(obj);
}
for (int i = 0; i < dt2.Rows.Count; i++)
{
//object[] obj2 = new object[dt3.Columns.Count];
dt2.Rows[i].ItemArray.CopyTo(obj,0);
newdt.Rows.Add(obj);
newdt.Rows.RemoveAt(i);
newdt.AcceptChanges();
}
dataGridView1.DataSource = newdt;
}

我已经把两个表合并到一个DataTable ,如何不显示重复的行


2007-10-12 10:30
快速回复:[求助]两个表比较,如果表B中的记录已经在表A中存在,则表A中不显示表 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011497 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved