将ArrayOfStrings转换为字符串数组

时间:2015-04-27 17:49:59

标签: c# web-services

我已经搜索了很长时间,尝试了不同的方法来解决这个问题而没有任何成功。

我目前的计划如下:

  • 网络服务:DAL,Controller和WebService(使用网络方法)
  • Windows窗体:控制器(接收Web服务)和表单

我在DAL中收到一个字符串数组,我尝试通过Web服务发送到Windows窗体程序中的Controller。但收到错误:

  

不能隐含转换类型   ' WindowsFormApplication.ServiceReference1.ArrayOfString'至   '&System.Collections.Generic.List LT;串[]>'

控制器形式:

 public List<string[]> GetAllEmployee()
 {
     return client.GetAllEmployee();
 }

web服务:

public List<string[]> GetAllEmployee()
{
    return cont.GetAllEmployee();
}

DAL:

 public List<string[]> GetAllEmployee()
 {
     GetConnection();
     con.Open();
     stmt = con.CreateCommand();
     stmt.CommandText = "SELECT [No_],[First Name],[Last Name],[Initials],[Job Title],[E-Mail] FROM [CRONUS Sverige AB$Employee]";
     OdbcDataReader reader = stmt.ExecuteReader();

     List<string[]> allEmployee = new List<string[]>();

     String[] cols = new string[5];
     for (int i = 0; i < cols.Length; ++i)
     {
         cols[i] = reader.GetName(i);
     }
     allEmployee.Add(cols);
     while (reader.Read())
     {
         string[] s = new string[cols.Length]; 
         for (int i = 0; i < s.Length; ++i) 
         {
             s[i] = reader.GetValue(i).ToString(); 
         }

         allEmployee.Add(s);
     }
     con.Close();
     return allEmployee;
 }

控制器:

public List<string[]> GetAllEmployee()
{
    return dal.GetAllEmployee();
}

客户端:

ServiceReference1.WebService1SoapClient client = new ServiceReference1.WebService1SoapClient();

1 个答案:

答案 0 :(得分:0)

您的服务会返回WindowsFormApplication.ServiceReference1.ArrayOfString类型,需要使用ToList明确转换为List<string>方法:

return dal.GetAllEmployee().ToList();