【问题标题】:DataGridView Rows Empty when set to DataSet设置为 DataSet 时 DataGridView 行为空
【发布时间】:2012-02-06 18:25:57
【问题描述】:

我很难从我以编程方式添加的数据集的实例中获取 datagridviewrow 对象。我这样做是为了使用与我的其他构造函数相同的方法,该构造函数从表单上 datagridview 中的选定行工作。

我的问题是 datagridview.rows.count 总是 0 。阅读“ASME_AllowableStress.Rows.Count”我得到了 2600 行的完整表格。我不确定我遗漏了什么或声明错误没有添加 datagridview 行。列似乎已添加。

public Material(int mat_id)
    {
        this.ID = mat_id;
        MaterialDataSet materialDataSet = new MaterialDataSet();
        MaterialDataSetTableAdapters.ASME_2009_AllowableStressTableAdapter  aSME_2009_AllowableStressTableAdapter = new MaterialDataSetTableAdapters.ASME_2009_AllowableStressTableAdapter();
        MaterialDataSetTableAdapters.TableAdapterManager tableAdapterManager = new MaterialDataSetTableAdapters.TableAdapterManager();
        aSME_2009_AllowableStressTableAdapter.Fill(materialDataSet.ASME_2009_AllowableStress);
        DataGridView materialDataGridView = new DataGridView();
        DataView myView = materialDataSet.Tables[0].DefaultView;

        materialDataGridView.DataSource = myView;      


        MessageBox.Show(Convert.ToString(materialDataSet.ASME_2009_AllowableStress.Rows.Count));
        MessageBox.Show(Convert.ToString(materialDataGridView.Rows.Count));
        DataGridViewRow row = new DataGridViewRow();

【问题讨论】:

    标签: datagridview dataset


    【解决方案1】:

    由于我看不到您的其余代码,我只能假设;但是,我今天在 VB.net 中遇到了完全相同的问题(我猜那是 C#?),并且尝试将表格转储到 List(of T) 或将其附加到组合框而不是没有结果。

    最后,我制作了一个全新的表单,复制了绝对必要的代码,然后……它成功了。这两种形式的区别在于我在处理 Me.Load 的函数中调用了 InitializeComponent();我认为它是从程序中自动放置的(我使用的是 Visual Basic 2010 Express),但它可能是我在心不在焉的时候放置的。我把它拿出来,一切正常。

    为什么这个(额外的?我没有自定义构造函数)调用 InitializeComponent() 导致绝对没有数据显示(我也无法以编程方式向表中添加行),我不知道,因为正在搜索msdn 上的 InitializeComponent 没有帮助。

    无论如何,我希望这能解决您自己的问题;如果有或没有,请告诉我们!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      相关资源
      最近更新 更多