我很想知道检查数据集中是否有记录的最佳方法。 我一直在使用以下代码来检查数据集是否有某些记录。但我觉得有一些更好/最好的方法可以实现这一目标。
Dataset tableData = New Dataset();
if (_tableData.Tables.Count > 0 && _tableData.Tables[0].Rows.Count > 0)
{
}
如果我感觉不对,请分享一些知识。
由于
答案 0 :(得分:6)
如果任何表中有任何行,则返回true
。如果没有表或没有行,它将返回false
。
DataSet tableData; // ... instantiate DataSet
bool hasRows = tableData.Tables.Cast<DataTable>()
.Any(table => table.Rows.Count != 0);
答案 1 :(得分:2)
如果DataSet
中有多个表,那么您的逻辑将无法用于某些情况。
这种方法更完整:
bool HasRecords(DataSet dataSet)
{
foreach (DataTable dt in dataSet.Tables) if (dt.Rows.Count > 0) return true;
return false;
}
答案 2 :(得分:0)
您可以查看HasChanges()
,只有在成功插入数据(包括新行,已删除或已修改的行)时才会生效
DataSet dSet = new DataSet();
if (dSet.HasChanges())
{
}
您还可以通过DataSet.HasChanges(DataRowState)
了解确切地了解添加,修改或删除新行的情况
答案 3 :(得分:0)
如果你在DataSet中有多个DataTable,那就不行了。
不能想到我需要这样做才能说实话。如果我有类似的需求,我会在DataSet中寻找表,假设那里的所有那些都是出于某些功能原因。
所以我可能只是检查customers表是否为空且有一个选择计数,因为如果检查其他任何内容都没有意义。
答案 4 :(得分:0)
http://msdn.microsoft.com/en-us/library/system.data.datatablereader.hasrows.aspx
尝试检查此链接我认为这就是您要做的事情。