选择数据表中不存在的数据行

本文关键字:数据 不存在 数据表 选择 | 更新日期: 2024-10-31 05:28:35

我正在尝试这样做:

DataRow DefaultTemplateRow = dt.Select("TEMPLATE_ID=1").CopyToDataTable().Rows[0];
if (DefaultTemplateRow == null)
 {
    dt.Rows.Add(0, 1, "Default", "", "By total", "1", "1");
 }

就我而言,我不确定 dataTable 中是否存在TEMPLATE_ID=1如果数据行不退出,它会在移动到下一条语句之前引发异常 如何避免抛出的异常? 我应该使用 try catch 吗?

选择数据表中不存在的数据行

dt.Select("TEMPLATE_ID=1")

已返回数据行数组。因此,您可以通过以下方式检查行数是否超过零:

DataRow[] DefaultTemplateRow = dt.Select("TEMPLATE_ID=1");
if (DefaultTemplateRow.Length > 0)
...

您可以使用 LINQ To DatTable/DataSet

DataRow DefaultTemplateRow = 
                  dt.AsEnumerable()
                    .FirstOrDefault(r => r.Field<int>("TEMPLATE_ID") == 1);

如果未找到 ID,这将返回null

(您可以将扩展方法中的类型替换为数据库中的类型Field

稍后你可以有你的代码:

if (DefaultTemplateRow == null)
{
   dt.Rows.Add(0, 1, "Default", "", "By total", "1", "1");
}