这是我用来检查数据表中是否存在标题匹配的方法:
public static bool checkBook(DataTable dt, String title)
{
try
{
foreach (DataRow dr in dt.Rows)
{
String checktitle = dr["Title"].ToString();
if (title == checktitle)
return true;
else
return false;
}
catch (Exception ex)
{
//do something
return false;
}
}
但是有一个问题,我尝试使用try和catch但是为什么没有值返回?
答案 0 :(得分:6)
在try
枚举任何内容的情况下,您没有从dt.Rows
块返回任何内容。
在try块中的foreach之外,您只需添加return false;
答案 1 :(得分:2)
如果数据中没有行,会发生什么? 那么归还了什么?
答案 2 :(得分:2)
存在错误,因为如果数据表中没有行,则无法返回表单代码,因此您需要return false
,如下所示代码,
为您优化代码:
public static bool checkBook(DataTable dt, String title)
{
bool returnval= false;
try
{
foreach (DataRow dr in dt.Rows)
{
String checktitle = dr["Title"].ToString();
if (title == checktitle)
{
returnval= true;
}
}
catch (Exception ex)
{
//do something
}
return returnval;
}