2017-02-07 4 views
-2

コード内のメソッドのエラーメッセージを返そうとしていますが、正しい戻りオブジェクトを見つけることができません。インターネットで検索しましたが、答えが見つかりませんでした。C#プログラミングReturn ArrayList

public ArrayList getBeneficiaryID(string UserID) 
 
{ 
 
    try 
 
    { 
 
     //long Beneficiary_ID = 0; 
 
     //string BeneficiaryID = ""; 
 
     ArrayList BeneficiaryArray = new ArrayList(); 
 
     // Open connection to the database 
 
     string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["Databasebcfintec_alice"].ConnectionString; 
 
     aConn = new SqlConnection(strConn); 
 
     aConn.Open(); 
 

 
     // Set up a command with the given query and associate 
 
     // this with the current connection. 
 
     string sql = "Select BeneficiaryID from Beneficiary where user_id = '" + UserID + "'"; 
 
     cmd = new SqlCommand(sql); 
 
     cmd.Connection = aConn; 
 

 
     // Execute the query 
 
     odtr = cmd.ExecuteReader(); 
 

 
     while (odtr.Read()) 
 
     { 
 
      BeneficiaryArray.Add(odtr["BeneficiaryID"]); 
 
      //User_ID = (long)(odtr["user_id"]); 
 
      //UserID = User_ID.ToString(); 
 
     } 
 
     odtr.Close(); 
 
     return BeneficiaryArray; 
 
    } 
 
    catch (Exception ex) 
 
    { 
 
     Console.WriteLine("Exception: " + ex.ToString()); 
 
     //return ex.ToString(); 
 
     return; 
 
    } 
 
}

エラーメッセージ:

"ArrayListにコンバーチブル型のオブジェクトが必要とされる"


次のコードスニペットであります

別のm私が試みたethodは次のコードを使用していました: return ex.ToString();

が、それは次のようなエラーメッセージが提供:「暗黙的 に型 'string' を変換できません

'をSystem.Collections.ArrayList'

答えて

1

あなただけのため、return null;またはreturn new ArrayList(); を置くことができますあなたはキャッチで手に入れようとしているものを気にしないように見えます。すでにコンソールログがあります。

+0

助けたことをありがとう、私はArrayListのためのエラーメッセージを返すために適切な方法を知りたいのですが、あなたはその答えを知ることが起こるのか? –

+0

私は実際にどのようなメッセージを表示するか分かりません。 Console.WriteLineを通じて 'Exception'メッセージを表示するだけで十分ですので、何も返す必要はありません。 – mindOfAi

1

問題は、オブジェクトを返します。できないこと

return; 

何も返されていないためです。また、ArrayListにキャストできないため、文字列を返すこともできません。

ただし、nullが返される可能性があります。

0

catchセクションでは、例外をスローする必要があります。

public ArrayList MethodName(string UserID) 
{ 
     try 
     { 
      //write your code 
     } 
     catch (Exception) 
     { 
      //log the exception 
      throw ; 
     } 
} 
+0

それは本当ではない、あなたは必ずしもキャッチから例外をスローする必要はありません。例外を処理する方法がわからない場合にのみ当てはまります。その場合は、例外を再スローする方がよいでしょう。また、 'throw ex'ではなく 'throw'を実行する必要があります。 – EJoshuaS

+1

うん。それを修正します。 – Scrat