1

这是我用来检查数据表中是否存在匹配标题的方法:

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 and catch但是为什么没有值返回?

4

3 回答 3

6

try在没有枚举任何内容的情况下,您不会从块中返回任何内容dt.Rows

在 try 块中的 foreach 之外,您只需添加return false;

于 2012-05-04T15:47:20.687 回答
2

如果数据中没有行会发生什么?
那会返回什么?

于 2012-05-04T15:47:37.663 回答
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;
   }
于 2012-05-04T15:48:19.447 回答