C#编程返回ArrayList

时间:2017-02-07 03:33:22

标签: c# 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的类型的对象”

我尝试的另一种方法是使用以下代码: return ex.ToString();

但它提供了以下错误消息:

  

“无法将类型'string'隐式转换为   'System.Collections.ArrayList'

3 个答案:

答案 0 :(得分:1)

您可以放return null;return new ArrayList();  因为看起来你并不关心你将会遇到什么。您已有控制台日志。

答案 1 :(得分:1)

问题是你必须返回一个对象。你无法做到

return;

因为你没有返回任何东西。您也无法返回字符串,因为它无法转换为ArrayList。

但是,您可以返回null,这听起来就像您想要的那样。

答案 2 :(得分:0)

在catch部分,你应该抛出异常。

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