我必须在Java中使用一些web方法,但我犯了一个错误,返回数据集而不是另一种类型,这使得代码的互操作性较差。下面是一个我想要使用的webmethod的例子:
[WebMethod (Description =" Returns all employees")]
public DataSet GetAllEmployees()
{
RefreshConnection();
SqlDataAdapter sql = new SqlDataAdapter("select * " +
" from Employee_Table", OpenConnection());
DataSet employeeDataSet = new DataSet();
sql.Fill(employeeDataSet, "Employees");
return employeeDataSet;
}
现在我不知道如何解决这个问题。我是一个初学者在网络服务,所以请也给你的解决方案的解释。
我认为我通过将sqlDataReader的结果转换为带有字符串的列表来解决问题。
[WebMethod (Description =" Returns all employees")]
public List<string> GetAllEmployees()
{
RefreshConnection();
List <string> data = new List<string>();
SqlCommand sqlData = new SqlCommand("select * " +
" from Employee_Table", OpenConnection());
SqlDataReader sqlReads = sqlData.ExecuteReader();
while (sqlReads.Read())
{
data.Add((string)sqlReads.GetValue(1));
data.Add((string)sqlReads.GetValue(2));
}
return data;
}
在java中由代理对象:
private List<String> getEmployee() throws RemoteException{
return Arrays.asList(proxy.convertToList());
}
现在我的问题是如何区分两列?该数组接受所有内容,而不像使用resultSet那样格式化结果。