我正在尝试这样做:
DataRow DefaultTemplateRow = dt.Select("TEMPLATE_ID=1").CopyToDataTable().Rows[0];
if (DefaultTemplateRow == null)
{
dt.Rows.Add(0, 1, "Default", "", "By total", "1", "1");
}
在我的情况下,我不确定数据表中是否存在TEMPLATE_ID=1
或者不存在如果数据行不退出它会在转移到下一个语句之前抛出异常我怎样才能避免抛出的异常?我应该使用try catch吗?
答案 0 :(得分:2)
dt.Select("TEMPLATE_ID=1")
已经返回一个DataRows数组。因此,您可以检查是否有超过零行:
DataRow[] DefaultTemplateRow = dt.Select("TEMPLATE_ID=1");
if (DefaultTemplateRow.Length > 0)
...
答案 1 :(得分:0)
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");
}