2012-01-10 32 views
1

我有一個困難時刻試圖從數據集的實例中獲取datagridviewrow對象,我已經通過編程添加了。我這樣做是爲了使用與我的其他構造函數相同的方法,該構造函數從窗體上的datagridview中的選定行開始工作。DataGridView行設置爲DataSet時爲空

我的問題是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

由於我看不到剩下的代碼,我只能假設;然而,今天我在VB.net中遇到了完全相同的問題(我猜這就是C#?),並試圖將錶轉儲到List(T)中,或者將它附加到組合框而不是結果。最後,我做了一個全新的表格,複製了絕對必要的代碼,並且......它工作正常。這兩種形式之間的區別在於我在處理Me.Load的函數中調用了InitializeComponent();我認爲它是從程序中自動放到那裏的(我使用的是Visual Basic 2010 Express),但它可能在我心不在焉的時候被放置。我把它拿出來,一切按需要工作。爲什麼這個(額外的?我沒有一個自定義的構造函數)調用InitializeComponent()導致絕對沒有數據顯示(我也不能編程添加行到表),我不知道,作爲搜索對於msdn上的InitializeComponent沒有幫助。

無論如何,我希望這能解決你自己的問題;請讓我們知道如果它或不!