应用查询时,数据在datagridview中是否重复?

时间:2019-02-17 12:24:18

标签: c# .net winforms

我正在尝试在winform上执行CRUD操作

这是针对ASP.NET winform的,其中每当我尝试向所有行中的第一行插入,更新或从数据库中删除数据时,内部内容都会重复 https://imgur.com/a/d5jgv6H 但是,重新启动后,应用程序数据会正确显示

{% if not myItemData.free1 is empty %}
    {% for image in myItemData.free1|split(',') %}
    <img class="free1img" src="/documents/gefahrenicons/{{ image|trim }}.gif" />
    {% endfor %}
{% endif %}

查询工作正常,但行仍然重复。 怎么了?  我找不到任何错误,所以我想我做错了什么。

1 个答案:

答案 0 :(得分:0)

您的show方法将行添加到网格中,但从不删除网格中已存在的行。

通常,人们将使用数据绑定来填充DataGridView或其他数据绑定控件。我将假设您有理由直接添加行(也许对您而言更简单)而不更改它。在这种结构下,最简单的操作可能就是在添加新行之前清除网格:

void show()
{
    String query = "select * from student";
    SqlDataAdapter adapter = new SqlDataAdapter(query, con);
    DataTable dataInTable = new DataTable();
    adapter.Fill(dataInTable);

    dataGridView1.Rows.Clear(); // <--- here

    foreach (DataRow item in dataInTable.Rows)
    {
        int n = dataGridView1.Rows.Add();
        dataGridView1.Rows[n].Cells[0].Value = item[0].ToString();
        dataGridView1.Rows[n].Cells[1].Value = item[1].ToString();
        dataGridView1.Rows[n].Cells[2].Value = item[2].ToString();
        dataGridView1.Rows[n].Cells[3].Value = item[3].ToString();
        dataGridView1.Rows[n].Cells[4].Value = item[4].ToString();
    }
}

这样,您每次要用新数据填充网格时,都首先要从中清除现有数据。