0

我有网络方法。

[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 做一个应用程序。

4

2 回答 2

1

你的代码不正确。

(string[])dr["objective"]

您将在您的 webmethod 中遇到此行的异常。因为你不能dr["objective"]直接投射到string[].

编辑:

正如您在下面的评论中提到的那样,数据类型是 NVARCHAR 所以你可以这样做

objectiveStringList.Add((string)dr["objective"]);
于 2013-08-21T07:32:57.123 回答
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;
    }
于 2013-08-21T07:34:32.123 回答