2012-06-22 51 views
1

DataRow包含一個Table屬性,它似乎返回此行所屬的整個Table。如果我擁有的是單個DataRow,我可以訪問整個DataTable嗎?

我想知道我是否可以安全使用該表,或者如果有疑難問題。 在http://msdn.microsoft.com/en-us/library/system.data.datarow.table.aspx文檔中,它表示「一個DataRow不一定屬於任何表的行集合,當DataRow已創建但未添加到DataRowCollection時,會發生此行爲。,但我知道我的行屬於一個表。

就指針而言,如果DataTable中的每一行都指向原始DataTable,那麼我就很好。這是所有'表'屬性嗎?

只是爲了解釋爲什麼我想要基於單個DataRow獲取整個表: 我正在使用linq連接兩個(有時更多)表。我想要一個通用的例程,它接受linq(var)的輸出,並生成一個包含所有結果的單個DataTable。 我已經打開另一個問題在stackoverflow(Join in LINQ that avoids explicitly naming properties in "new {}"?),但到目前爲止似乎沒有一個通用的解決方案,所以我試圖寫一個。

回答

2

如果您知道該行是表的一部分,那麼您可以毫無問題地訪問它。如果可能存在行可能不與表關聯的情況,則檢查該屬性是否爲空。

if(row.Table == null) 
{ 
} 
else 
{ 
} 
1

只要它不爲空,您可以自由使用它。

相關問題