2
 for(int c =1;c<=author.books.count;c++)             
 {

  string author = author.name.ToString();

  string author = author.book_name.ToString();
  string author = author.published_year.ToString();

  string[] row = new string[]{author, book_name, published_year};
  dataGridView1.Rows.Add(row);
 }

这是我的代码(类似地)........我正在从一个 XML 文件中获取数据。我的问题是当我选择一位作者时,它在 windows_form 的 gridview 中提供数据。之后,如果我再选择一位作者,comming 数据将附加到预览数据中。我只想显示当前选定的作者数据。

我试过了:

      dataGridView1.Rows.Clear();

当我在for循环之前将此代码放在pgm中时,它甚至没有在“GridView”中提供任何数据。

我试过了:

     if (this.dataGridView1.DataSource != null)
      {
          this.dataGridView1.DataSource = null;
      }
     else
     {
       this.dataGridView1.Rows.Clear();
     }

与上面相同的方式不显示任何数据。

请帮我.................

4

2 回答 2

2

如果您的datasource = null. 这意味着如果已经分配了某些数据源,您将不会清除行。这是你的情况。

所以你应该这样做。不需要 if 语句。

删除此声明

 if (this.dataGridView1.DataSource != null)

你的代码应该是这样的

      this.dataGridView1.DataSource = null;
      this.dataGridView1.Rows.Clear();

这是清除行的正确方法。

于 2013-08-05T15:00:54.717 回答
0

将 xml 读入 dataTable 并将表与 datagridview 绑定。在这种情况下,您不需要清除行内容。

否则你可以使用datagridview.Rows.RemoveAt(index)datagridview.Rows.Remove(row)

于 2012-05-25T07:13:43.710 回答