C# Web Service 怎么返回string[][] 数组

C# Web Service 怎么返回string[][] 数组
客户一定要求 提供一个方法返回一个二维的string数组。
[WebMethod]
public string[][] Studentinfo(String nowDate)
{
...
string[][] acept = ...;
...
return acept;
}
代码没有什么问题,但是调试中出现“为序列化”错误。小女子在此跪求大侠出手相助!
以下是我完整代码:
1 [WebMethod]
2 public String[,] getSellInfo1(string nowDate)
3 {
4 DataSet ds = new DataSet();
5 ...//省略代码为获取ds的代码
6 int row = ds.Tables[0].Rows.Count;
7 int col = ds.Tables[0].Columns.Count;
8 String[,] acept = new String[row,col];
9 for (int i = 0; i < row; i++)
10 for (int j = 0; j < col; j++)
11 {
12 acept[i,j] = ds.Tables[0].Rows[i][j].ToString();
13 }
14 return acept;
调试提示错误如下:
无法序列化类型 System.String[,] 的对象。不支持多维数组。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NotSupportedException: 无法序列化类型 System.String[,] 的对象。不支持多维数组。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
最新回答
菊花般的笑容

2024-10-02 02:17:13

把你的代码改成如下

public String[][] getSellInfo1(string nowDate)
{
DataSet ds = new DataSet();
...//省略代码为获取ds的代码
int row = ds.Tables[0].Rows.Count;
int col = ds.Tables[0].Columns.Count;
String[][] acept = new String[row][];
for (int i = 0; i < row; i++)
{
acept[i] = new String[col];
for (int j = 0; j < col; j++)
{
acept[i][j] = ds.Tables[0].Rows[i][j].ToString();
}
}
return acept;
}
追问
好像成功了!万分感谢
无人问我粥可暖

2024-10-02 02:18:38

for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
string[i][j]=......
}
}

最好上错误代码!!!
追问
源码已经附上,麻烦看下,谢谢!
抹茶落季

2024-10-02 03:22:05

你返回一个List<string[]>试试
追问
客户要求返回个二维string数组,如果要返回List,还不如直接返回DataSet/DataTable
故人的歌

2024-10-02 00:55:02

用断点查看下返回的数组里面都有什么?
追问
调试马上错误!设置到达不到断点。
泠月

2024-10-02 03:32:28

不会