";安全地“;在数据表中查找具有特定字段值的行

本文关键字:字段 安全 quot 数据表 查找 | 更新日期: 2023-09-27 18:16:56

我试图通过"安全"地使用非pk字段中的值来获取一行我可以使用try-and-catch让它正常工作,这样,如果字段名不存在或找不到任何具有该值的行,就不会导致应用程序崩溃。

然而,这反过来又填充了该方法,因为它现在声明所有路径都不会返回值。

这是我的代码:

private DataRow getRowByFieldVal(DataSet DtaSet, string sorceTable, string fieldName, string fieldValue)
{
    try
    {
        DataRow[] foundRows = DtaSet.Tables[sorceTable].Select(fieldName + " = " + fieldValue);
        return foundRows[0];
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

";安全地“;在数据表中查找具有特定字段值的行

编译器正在询问What do you want to return if there is error in try block?

想象一个用例。

try块中有一些错误,所以catch开始执行,但由于此函数必须返回一些内容。那么在这种情况下该返回什么呢。它是null还是使用throw引发异常。

所以你可以做

catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
    return null; //Add this line.
}

对此不应使用try-catch。如果它找不到具有指定值的行,则可以使用If.Try-catch来检查是否存在可能引发异常的块。代替

return foundrows[0];

首先检查是否有,然后将其退回。

但要回答您的问题,捕获块也需要返回

return null;

也许