";安全地“;在数据表中查找具有特定字段值的行
本文关键字:字段 安全 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;
也许