C#如何获取datagridview中某一整列的数据。

我现在有一堆数据,约5000个。

问题:
(1)现在,我想获取MAC号那列的所有数据作为一个集合,该怎么获取。
(2)获取到整列数据后,如何进行判断是否有相同的MAC号比较快速,用foreach吗。
如果有其他比较快速的方法,请指点一下。

三种方案:一种去sql语句去写,第二种就是循环做,没别的办法,5000条数据并不多,循环也是很快的。第三觉得用linq也是可以做的。
建议用循环做,比较清晰。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-02-10
你的 datagridview 数据源是什么呢?追问

execl的。从execl里面获取的数据。

追答List<string> listMac = new List<string>();
foreach (DataGridViewRow item in this.dataGridView1.Rows)
{
    string tempMac = item.Cells[2].Value.ToString();//假设你的mac列在第二列
    if (!listMac.Contains(tempMac))
    {
        listMac.Add(tempMac);
    }
    else
    {
        MessageBox.Show("重复mac");
    }
}

追问

按照你的方法,查重通过了。我现在还有2个疑问。就是漏号与错序查询。

漏号:即00231F318352(假设在第0行第1列)与00231F318354(假设第1行第2列)之间有一个MAC号(00231F318353)没有这样的情况。

错序:即在第i行第1列的MAC号比第i+1行的MAC号大的情况。

这两个查询该如何弄呢。我给你加分。

追答

漏号,你的不同列数据怎么比????

你数据放进datagridview后是否排序好了?字符串比较可以用下面的方法
int result = string.Compare(strA,strB,false);
//返回1,strA比strB大;
//返回0,strA等于strB;
//返回-1,strA比strB小;

追问

打错了,是相邻行同列的数据。

追答

这个弄起来就有点麻烦咯

追问

嗯。还是感谢你。按照你的思路,把错序解决了。漏号我就自己再琢磨下。给你加分哈。

本回答被提问者采纳

请问c# 的winform 怎么获取 datagridview选中的行数和列数啊
1、获得某个(指定的)单元格的值:dataGridView1.Row[i].Cells[j].Value;2、获得当前选中行的索引:dataGridView1.CurrentRow.Index;3、获得当前选中单元格的值:dataGridView1.CurrentCell.Value;

C#中 winform 读取datagridview中的某一行某列的值
可以用个for语句实现.

c#怎么获得dataGridView中指定的列的内容
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { textBox9.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["Column1"].Value.ToString(); textBox2.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["Column2"].Value.ToString();...

c# datagridview 如何选中行,以及怎么获取选中行的数据
1、首先需要在事件列表中找到DataGridView对象的CellClick事件。2、然后在此事件中,会有DataGridCiewCellEventArgs事件变量e。3、此时便能利用DataGridCiewCellEventArgs事件变量e的RowIndex属性获得行索引,但是我们需要加1。4、并且还能通过CurrentCellAddress属性组的X和Y坐标,也是能够获得行列索引。

C# 如何获取datagridview的任意一列的平均值
datagridview中的每个单元格都有RowIndex和ColumnIndex,根据这两个就可以获取任意一个单元格中的内容.dgv.rows[rowIndex].cells[ColumnIndex].value.for (int i = 0; i < DataGridView1.Rows.Count - 1; i++){ for (int j = 0; j < DataGridView1.Columns.Count; j++){ s=DataGridView...

如何获得DataGridView中某一列中全部的值?
写个for循环就行了 循环的个数就是你DataGridView.Rows.count就是至于取出值来放到哪里就看你自己喜好了 string[],hastable这些都可以for(int x=0;x<DataGridView.Rows.count;x++){ dataGridView1.Rows[x].Cells[你要的列的下标].ToString()} 本回答被网友采纳 热心网友| 推荐于2017-12-15 12:58:20 ...

c#如何获取dataGridView中特定行的行数。 比如 资产名称=灭火器 的行...
代码已通过测试。一、获取第一个匹配行 public void 查找特定行() { \/\/ 用 .Cast 将 dataGridView1 的所有行转化为 List<DataGridViewRow> var list = dataGridView1.Rows.Cast<DataGridViewRow>(); \/\/ 用 .First 返回第一个匹配项符合条件x.Cells[0].Value 等于 灭火器的 Row ...

C#关于对datagridview内的数据进行获取
w1.CurrentRow.Index;\/\/获取你选中的行编号 string name1 = this.dataGridView1["name1", i].Value.ToString();\/\/获取你选中行,列名为"name1"的值,或者string name1 = this.dataGridView1[4, 3].Value.ToString(); \/\/获取3行4列 另外,虚机团上产品团购,超级便宜 ...

c# 获取dataGridView选中行的行数
获取总行数:dataGridView1.Rows.Count;获取当前选中行索引:int i = this.dataGridView1.CurrentRow.Index;获取当前选中列索引:int j = this.dataGridView1.CurrentCell.ColumnIndex

C#如何获取datagridview中某一整列的数据。
三种方案:一种去sql语句去写,第二种就是循环做,没别的办法,5000条数据并不多,循环也是很快的。第三觉得用linq也是可以做的。建议用循环做,比较清晰。

相似回答