C# 如何检查数据集中是否存在表
我正在用几个表填充数据集。但他们可能并不总是有争吵 因此,我想在尝试访问某个给定表(并导致异常)之前检查该表是否存在 //填充数据集 我尝试了以下选项,但都抛出了一个关于不存在表的异常。我如何检查这个而不出错 备选案文1C# 如何检查数据集中是否存在表,c#,C#,我正在用几个表填充数据集。但他们可能并不总是有争吵 因此,我想在尝试访问某个给定表(并导致异常)之前检查该表是否存在 //填充数据集 我尝试了以下选项,但都抛出了一个关于不存在表的异常。我如何检查这个而不出错 备选案文1 if(ds.Tables[1].Rows.Count > 0) 选择2 if(ds.Tables[1] != null) 尝试添加具有名称的表,并使用表名称检查表是否存在: DataSet ds = new DataSet(); var table = ds.Tabl
if(ds.Tables[1].Rows.Count > 0)
选择2
if(ds.Tables[1] != null)
尝试添加具有名称的表,并使用表名称检查表是否存在:
DataSet ds = new DataSet();
var table = ds.Tables.Add();
table.TableName = "some_name";
if (ds.Tables.Contains("some_name")) {
// do your logic...
var theTable = ds.Tables["some_name"];
if (table.Rows.Count == 0) {
}
}
通过使用表名,您的代码看起来更干净、可读性更强
如果只想迭代所有表,可以:
foreach (DataTable tbl in ds.Tables)
{
if (tbl.Rows.Count > 0) {
}
}
如果(ds.Tables.Count>=2)访问不存在的表的行时出错。不过,这个办法奏效了!如果(Tables.Count>1)@John如果访问表[1],则访问的是第二个表,因为表集合是基于0索引的。您可以对每个使用一个
进行迭代,这会提供更清晰的代码,但这只是一个样式首选项。我很高兴它现在对你有用。
foreach (DataTable tbl in ds.Tables)
{
if (tbl.Rows.Count > 0) {
}
}