我有网络方法。
[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做一个应用程序。
答案 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;
}