【问题标题】:Setting datasource to datagridview doesn't show data将数据源设置为 datagridview 不显示数据
【发布时间】:2013-11-02 09:13:24
【问题描述】:

我正在为 datagridview 分配一个数据源,它工作正常,但只是第一次。当我第二次分配数据源时,它不显示数据。我的代码是:

gridProjectEdit.DataSource = null;
gridProjectEdit.Columns.Clear();
gridProjectEdit.Rows.Clear();            
gridProjectEdit.Refresh();

if(dt!=null)
dt.Clear();
dt=methodCaller.GetProjectData(); //get the data
gridProjectEdit.DataSource = dt;  //copying datatable
copyOfProjectDataTable = dt.Copy(); //this datatable used to check sno

如果重要的话,我还会像这样重命名前面的列标题:

//renaming column header
gridProjectEdit.Columns[0].HeaderText = "S.NO.";
gridProjectEdit.Columns[1].HeaderText = "PROJECTNAME";

当我第二次调试此代码时,它显示数据表有 6 行,但我不知道为什么它不显示数据,它只显示列标题。

【问题讨论】:

  • 第二次说的时候是什么意思?第二次执行相同的代码吗?
  • 是的,第二次执行相同的代码。
  • @Mogli 很明显GetProjectData工作不正常,第二次返回empty data
  • no GetProjectData() 返回包含6行的数据表,我检查了。
  • @Mogli 这是第一次,你第二次检查了吗?

标签: c# winforms datagridview


【解决方案1】:

在我看来,您不应该多次分配数据源。在构造函数或 OnInitialize 方法中设置一次 DataSource 而不是这样做

dt=methodCaller.GetProjectData();

dt.AddRange(methodCaller.GetProjectData());

【讨论】:

    猜你喜欢
    • 2014-01-14
    • 2011-07-31
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多