我很难尝试从编程方式添加的数据集实例中获取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();
答案 0 :(得分:0)
由于我看不到你的其余代码,我只能假设;但是,我今天在VB.net中遇到了同样的问题(我猜这是C#?),并试图将表转储到List(T)或将其附加到组合框而不是没有结果。
最后,我制作了一个全新的表格,复制了绝对必要的代码,并且...它有效。这两种形式之间的区别在于我在处理Me.Load的函数中调用了 InitializeComponent();我认为它是从程序中自动放入的(我使用的是Visual Basic 2010 Express),但它可能是我在心不在焉的时刻放置的。我拿出来了,一切都按照要求运作。
为什么这个(额外?我没有自定义构造函数)调用InitializeComponent()导致绝对没有数据显示(我也无法以编程方式向表中添加行),我不知道,因为正在搜索msdn上的InitializeComponent没有帮助。
无论如何,我希望这可以解决你自己的问题;如果它有或没有,请告诉我们!