如何在C#中使用List <string []>的Web方法?</string []>

时间:2013-08-21 07:29:20

标签: c# windows-phone-7

我有网络方法。

[WebMethod]
public List<string[]> getObjective()
{
    List<string[]> objectiveStringList = new List<string[]>();
    con.dbConnect();
    objectiveStringList = con.getObjective();
    con.dbClose();

    return objectiveStringList;
}

还有,查询。

    public List<string[]> getObjective()
{
    string strCMD = "SELECT objective FROM CorrespondingBall WHERE objective IS NOT NULL";
    SqlCommand cmd = new SqlCommand(strCMD, conn);
    SqlDataReader dr = cmd.ExecuteReader();

    List<string[]> objectiveStringList = new List<string[]>();
    while (dr.Read())
    {
        objectiveStringList.Add((string[])dr["objective"]);
    }
    return objectiveStringList;
}

但是,显示错误“HTTP 500 Internal Server Error”消息。我已经尝试使用List Byte Array并且没有错误。有谁知道我怎么解决它?

仅供参考:我正在为Windows Phone 7做一个应用程序。

2 个答案:

答案 0 :(得分:1)

您的代码不正确。

(string[])dr["objective"]

您将在网络方法的这一行获得例外。因为您无法将dr["objective"]直接投射到string[]

修改

正如您在下面的评论中提到的那样,数据类型是NVARCHAR,因此您可以执行此操作

objectiveStringList.Add((string)dr["objective"]);

答案 1 :(得分:0)

试试这个:

    public List<string> getObjective()
    {
        string strCMD = "SELECT objective FROM CorrespondingBall WHERE objective IS NOT NULL";
        SqlCommand cmd = new SqlCommand(strCMD, conn);
        SqlDataReader dr = cmd.ExecuteReader();

        List<string> objectiveStringList = new List<string>();
        while (dr.Read())
        {
            objectiveStringList.Add(dr["objective"].ToString());
        }
        return objectiveStringList;
    }