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 と 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 に答える