两个datagridview 怎么比较其中2列值是否相同?

问题描述

根据table1的ID刷选出table2的数据,比如我查询table2的ID"51100和51101"是不包含在table1里面的,就不要显示。在不使用循环比较2个列值?

解决方案

解决方案二:
在数据源当中比较会快很多,尽量想办法在数据源当中比较吧,界面还要取值,这是一种浪费行为。如果你觉得不能那样做,方法还是挺多的,那你可以用datagridview的过滤方法来进行筛选,也可以用把数据视图转化为Table再进行比对,最不济的,你还可以循环比对。
解决方案三:
数据源里解决这个问题吧,一行代码即可过滤了,你在表格里对比,除了像楼上说的“浪费”时间,还会变得很丑,数据多的时候如果要翻页的话,会出现每页的记录数不一致,你说是不是让人困惑?
解决方案四:
引用1楼AisaC的回复:

在数据源当中比较会快很多,尽量想办法在数据源当中比较吧,界面还要取值,这是一种浪费行为。如果你觉得不能那样做,方法还是挺多的,那你可以用datagridview的过滤方法来进行筛选,也可以用把数据视图转化为Table再进行比对,最不济的,你还可以循环比对。

我是从Excel里面抓出来的,没有用到sql.定义的privateDataTabletd;然后再add到datagridview的。现在就不知道怎么比较2个datagridview
解决方案五:
object[]values=newobject[]{id.ToString(),name[0].Value};td.Rows.Add(values);

我是这样把所有ID姓名add到datagridview2里面的,现在就是不知道怎么去比较2个datagridview。只显示包含在datagridview1ID里面的姓名。
解决方案六:
你在把你table1数据取得的过程贴出来。
解决方案七:
引用5楼ajianchina的回复:

你在把你table1数据取得的过程贴出来。

MatchCollectionmc=reg.Matches(s);//s就是我的数据源再下面的循环筛选出来foreach(varstrinmc.Cast<Match>().Select(x=>x.Value).Distinct().Reverse())//移除重复的只保留最后一个出现的SN号{BTS_tb.Rows.Add(newobject[]{str});}this.dataGridView1.DataSource=BTS_tb.DefaultView;

解决方案八:
MatchCollectionmc=reg.Matches(s);//s就是我的数据源再下面的循环筛选出来List<string>list1=mc.Cast<Match>().Select(x=>x.Value).Distinct().ToList();list1.Reverse();this.dataGridView1.DataSource=list1;foreach(...){if(list1.Contains(id.ToString())){object[]values=newobject[]{id.ToString(),name[0].Value};td.Rows.Add(values);}}

解决方案九:
你的第二个表的数据获取过程没写完整,其实也不需要循环的,第二个表的数据里可以直接查询后绑定,我这只是给你做了个筛选的例子,你还可以进一步简化代码
解决方案十:
在绑定之前不是有两个数据源嘛,直接在数据源里面循环过滤就行了。
解决方案十一:
引用8楼ajianchina的回复:

你的第二个表的数据获取过程没写完整,其实也不需要循环的,第二个表的数据里可以直接查询后绑定,我这只是给你做了个筛选的例子,你还可以进一步简化代码

privatevoidbts_btn_Click(objectsender,EventArgse){this.richTextBox1.Text="";//this.listBox1.Items.Clear();FolderBrowserDialogdialog=newFolderBrowserDialog();if(dialog.ShowDialog()==DialogResult.OK){foldPath=dialog.SelectedPath;DirectoryInfoTheFolder=newDirectoryInfo(foldPath);fileName=Path.GetFileName(dialog.SelectedPath);//获取当前打开文件夹名称StringBuildersb=newStringBuilder();foreach(FileInfoNextFileinTheFolder.GetFiles()){stringtempStr=File.ReadAllText(NextFile.FullName,Encoding.GetEncoding("GB2312"));//sb.Append(tempStr);}this.richTextBox1.Text=sb.ToString();this.listBox1.Visible=true;if(fileName.Contains("BTS")){strings=richTextBox1.Text;Regexreg=newRegex(@"(?is)[0-9a-zA-Z]{16}");MatchCollectionmc=reg.Matches(s);List<string>dateList=newList<string>();foreach(varstrinmc.Cast<Match>().Select(x=>x.Value).Distinct().Reverse())//移除重复的只保留最后一个出现的SN号{BTS_tb.Rows.Add(newobject[]{str});stringaa=str.Substring(8,2)+"年"+str.Substring(10,2)+"周";if(!dateList.Contains(str))dateList.Add(aa);}listBox1.DataSource=dateList;this.dataGridView1.DataSource=BTS_tb.DefaultView;intcount=this.dataGridView1.RowCount;this.label2.Text="总计:"+(count-1).ToString();this.label1.Text=dateList.Count.ToString();this.label5.Text=fileName;

解决方案十二:
这里的这段代码listBox1是不可能导致重复数据的,如果你还是存在重复数据,我怀疑你的这个listBox1控件是否被绑定了相关事件,你删掉listBox1,重新拖一个上来,重命名为listBox1,再看一下。

时间: 2024-08-30 20:26:45

两个datagridview 怎么比较其中2列值是否相同?的相关文章

用Oracle10g列值掩码技术隐藏敏感数据

Oracle的虚拟私有数据库特性(也称作细颗粒度存取控制)对诸如SELECT等数据管理语言DML语句提供行级安全性检查.PL/SQL策略函数和某个数据表相关联,这个函数可以检查当前用户的上下文背景并添加查询中WHERE语句的条件(断言),一个用户或者应用可以这样来写: SELECT * FROM employees; 但是实际上oracle将会执行这样的语句: SELECT * FROM employees WHERE department_id = 60; 因此,只有在查寻范围之内的行(在de

实现DataGridView控件中CheckBox列的使用实例

 最近做WindowsForms程序,使用DataGridView控件时,加了一列做选择用,发现CheckBox不能选中.搜索后,要实现DataGridView的CellContentClick事件,将代码贴一下 代码如下: /// <summary>         /// 实现DataGridView控件中CheckBox列的使用         /// </summary>         /// <param name="sender">&l

DataGridView绑定数据库,点击一个DataGridView的一行,动态显示在另两张DataGridView里面.

问题描述 比如:点击第一张DataGridView里的一行,比如用户组..在第二张表格DataGridView显示用户组里面的成员..第三张DataGridView显示未分配给任何用户组的成员...这是链接SQLServer数据库的......第一张DataGridView数据库里面有一张表,第二张和DataGridView共用一个数据库里的一张表 解决方案 解决方案二:第一张图是这样的解决方案三:部分代码解决方案四:WinForm中如何实现两个DataGridView的数据联动

jquery-Java中使用datagridview,如何在操作列上调用我自己写的function函数?

问题描述 Java中使用datagridview,如何在操作列上调用我自己写的function函数? 问题描述:datagridview中的行都是使用jquery生成的.现在跟操作列上绑定单击时间的时候总是找不到我自己写的函数,请问有什么解决办法吗? 解决方案 这种问题你得学会调试.用IE F12,看你链接的地址对不对,是不是指向你的函数调用,这是第一,一般来说是href设置为#,onclick为你的函数,然后是你的函数有没有执行,如果执行了,单步调试. 解决方案二: 写function自定义函

实现DataGridView控件中CheckBox列的使用实例_实用技巧

复制代码 代码如下: /// <summary>        /// 实现DataGridView控件中CheckBox列的使用        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void dgvTradList_Ce

在Datagridview中添加了一列button列,想在某一行隐藏button该如何隐藏??

问题描述 在Datagridview中添加了一列button列,想在某一行隐藏button该如何隐藏?? 在Datagridview中添加了一列button列,想在某一行隐藏button该如何隐藏?? 是合计行也会有button 想把它去掉 怎么做比较好~~

两个DataGridView纵向同步滚动的问题

问题描述 我要将两个DataGridView的滚动条在纵向同步,就是只操作一个DataGridView滚动条,另一个DataGridView也滚动到相应位置.之前查了相应问题,发现横向同步滚动可以简单实现,代码如下PrivateSubDataGridView1_Scroll(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.ScrollEventArgs)HandlesDataGridView1.ScrollIfe.ScrollOrientatio

如何设置dataGridView中的某一列显示2位小数,但是不要四舍五入

问题描述 例如我dataGridView某一列值为4.567.我现在想让他显示成4.56,不要进位,试了很多方法,包括设置dgv的属性,都是进位的,都给显示成了4.57,请问高手如何能显示2位小数,且不进位? 解决方案 解决方案二:doubled=19.993;d.ToString("F2");解决方案三:或者:d.ToString("#.00");解决方案四:引用楼主cer01986的回复: 例如我dataGridView某一列值为4.567.我现在想让他显示成4

sql-SQL查询两列值相同位置相反去重问题

问题描述 SQL查询两列值相同位置相反去重问题 一个表有两个字段,两行数据为[A,B][B,A],列值相同位置相反,如何将这两行去重为一行?求教 解决方案 SELECT (CASE WHEN 第一列<第二列 THEN 第一列+第二列 ELSE 第二列+第一列 END) as AB from table group by AB