Code Bye

如何判断DataGridView某一行重复,只保存最新的

 

判断即将插入的新的一行的第二个列的值是否和当前DaTaGridView中的每行的第二列的值是否相同,相同则删除该行,然后插入新的这列。~~~~注意是行哦,不是列

 
遍历一下呗
DaTaGridView如果绑定了DataTable,你可以直接执行DataTable.Rows.RemoveAt(n)
取数据源,判断数据源中是否包含,包含删除,重新插入 再绑定。

20分
private void Input(string param1, string param2)
{
    if (dataGridView1.DataSource == null)
    {
        DataGridViewRow row = dataGridView1.Rows.Cast<DataGridViewRow>()
            .FirstOrDefault(r => r.Cells[1].EditedFormattedValue.Equals(param2));
        if (row != null) dataGridView1.Rows.Remove(row);
        dataGridView1.Rows.Add(param1, param2);
    }
    else
    {
        DataTable dt = (DataTable)dataGridView1.DataSource;
        DataRow row = dt.Rows.Cast<DataRow>()
            .FirstOrDefault(r => r[1].Equals(param2));
        if (row != null) dt.Rows.Remove(row);
        dt.Rows.Add(param1, param2);
    }
}
引用 3 楼 lkhuge 的回复:
private void In...

恩,蛮好的,但是如果我想在家第三个列,它是buttoncell,怎么加

引用 4 楼 u010774311 的回复:
Quote: 引用 3 楼 lkhuge 的回复:

private void Input(…

恩,蛮好的,但是如果我想在家第三个列,它是buttoncell,怎么加

这个也差不多
pre class=”brush: csharp”>private void Input(string param1, string param2, string param3)
{
    if (dataGridView1.DataSource == null)
    {
        DataGridViewRow row = dataGridView1.Rows.Cast<DataGridViewRow>()
            .FirstOrDefault(r => r.Cells[1].EditedFormattedValue.Equals(param2));
        if (row != null) dataGridView1.Rows.Remove(row);
        dataGridView1.Rows.Add(param1, param2, param3);
    }
    else
    {
        DataTable dt = (DataTable)dataGridView1.DataSource;
        DataRow row = dt.Rows.Cast<DataRow>()
            .FirstOrDefault(r => r[1].Equals(param2));
        if (row != null) dt.Rows.Remove(row);
        dt.Rows.Add(param1, param2, param3);
    }
}
不过使用DataSource的话  列上的设置会比较麻烦
pre class=”brush: csharp”>dataGridView1.Columns.Add(new DataGridViewTextBoxColumn
{
    HeaderText = “col1”,
    Name = “col1”,
    DataPropertyName = “col1”
});
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn
{
    HeaderText = “col1”,
    Name = “col1”,
    DataPropertyName = “col1”
});
dataGridView1.Columns.Add(new DataGridViewButtonColumn
{
    HeaderText = “col1”,
    Name = “col1”,
    DataPropertyName = “col1”
});
DataTable dt = new DataTable();
dt.Columns.Add(“col1”);
dt.Columns.Add(“col2”);
dt.Columns.Add(“col3”);
dt.Rows.Add(“col1”, “col2”, “col3”);
dataGridView1.DataSource = dt;

dataGridView1.DataSource = dt;额,好像不好加buttoncell吧,datagridview.Rows.add()加不上buttoncell
我在form_load把列加上去了,现在我想在方法里面加行
 public void add(string a, string b, string c, DateTime d)
        {DataGridViewButtonCell e = new DataGridViewButtonCell();  if (dataGridView1.DataSource == null)//没有数据源的解决办法
            {
             
                DataGridViewRow row = dataGridView1.Rows.Cast<DataGridViewRow>()
                    .FirstOrDefault(r => r.Cells[1].EditedFormattedValue.Equals(b + "的温度"));
                if (row != null) dataGridView1.Rows.Remove(row);dataGridView1.Rows.Add(a,b+"的温度",c,d,e);     
               dataGridView1.Rows.Add(a,b+"的温度",c,d,e);
            
            }
不是直接加DataGridViewButtonCell对象 
而是你先要在列(Columns)中申明这列是Button
pre class=”brush: csharp”>dataGridView1.Columns.Add(new DataGridViewTextBoxColumn
{
    HeaderText = “Column1”,
    Name = “Column1”
});
dataGridView1.Columns.Add(new DataGridViewButtonColumn
{
    HeaderText = “Column2”,
    Name = “Column2”
});

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明如何判断DataGridView某一行重复,只保存最新的