2012-06-22 24 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

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

相关问题