2013-03-28 99 views
1

我已經安裝了VS 2012多年後使用VS 2010,我甚至無法設置循環錶行(以前是一個輕而易舉的),這對我的項目是至關重要的。通過DataSet表循環訪問

我嘗試了很多方法調用DataGrid.Rows,但這已不再提供給用戶,所以我試圖找到解決辦法。

這裏和這裏是我想到的,但第二部分只是不適合我。

foreach (TableRow row in MyDatabaseDataSet.Tables["Table1"].Rows) 
{ 
//Pesky lengthy non-working code supposed to generate 
//controls dependent on row cell value 
} 

只是爲了讓事情變得更簡單(不工作的代碼就是這麼漫長這將是反建設性它張貼在這裏,而是我們的嘗試,並得到一個消息,顯示在第二列的單元格的值該行的看着

但沒有做它

我想,我能想到的,包括很多很多:。

MessageBox.Show(row.Cells[2].Value); 
MessageBox.Show(row.Cells[2].Text); 

但就是沒有根本不爲我工作!

甚至不想運行項目。

如何循環遍歷DataTable甚至Datagrid中的所有行? PS:我忘了提及,但我也在上面寫的foreach語句之前的代碼中加入了Load Data段。

+2

'DataTable.Rows'返回'DataRowCollection'包含'DataRows'不是'TableRows'。 –

+1

當你說「它不工作」,而且你沒有告訴我們這意味着什麼(就像你做了兩次),它幾乎沒有意義。如果「它不起作用」,告訴我們它不工作的方式。它不會編譯?它是否會在運行時導致異常?是否有錯誤訊息?如果是這樣,那麼它究竟是什麼**呢?如果您向我們提供信息會更容易,因爲您已經擁有了它,而不是讓我們猜測。 –

回答

5

也許我俯瞰簡單的東西,但DataTable.Rows返回DataRowCollection包含DataRowsTableRows

所以不是

foreach (TableRow row in MyDatabaseDataSet.Tables["Table1"].Rows) 
{ 
    // ... 
} 

這樣的:

foreach (DataRow row in MyDatabaseDataSet.Tables["Table1"].Rows) 
{ 
    // ... 
} 
0

DataTable.Rows返回DataRowCollection一個實例,其中包含DataRow對象,而不是TableRow

foreach(DataRow row in MyDatabaseDataSet.Tables["Table1"].Rows) 
{ 
    // code here 
} 
+0

感謝你們倆。答案確實是DataRow,而不是tabel行,並獲得單元格值: messagebox.show(row.Field (「Columnname」)) –