2014-05-22 31 views
1

嗨我有一个问题,当试图返回查询的内容(字符串)作为一个数组列表。我已经处理了我的一个查询,但我无法用另一种方法重现它。 (我有一个EmplAbsence类)Web服务查询不显示字符串数组

Webservice的方法1:

[WebMethod] 
public List<EmplAbsence> getEmplAbsence() 
{ 
    List<EmplAbsence> emplAbsence = new List<EmplAbsence>(); 

    try 
    { 
     sqlConn.Open(); 

     string queryEmplAbsence = "select [First Name],[Last Name] from [CRONUS Sverige AB$Employee] where No_ in (select [Employee No_] from [CRONUS Sverige AB$Employee Absence] where Description='Sjuk'and [From Date] between '2004-01-01' and '2004-12-31')"; 
     SqlCommand cmd = new SqlCommand(queryEmplAbsence, sqlConn); 
     SqlDataReader reader = cmd.ExecuteReader(); 

     while (reader.Read()) 
     { 
      EmplAbsence ez = new EmplAbsence(reader.GetString(0), reader.GetString(1)); 
      Console.WriteLine(ez); 
      emplAbsence.Add(ez); 
     } 
    } 
    catch (SqlException) 
    { 
     throw; 
    } 
    finally 
    { 
     sqlConn.Close(); 
    } 
    return emplAbsence; 
} 

public class EmplAbsence 
{ 
    string firstname; 
    string lastname; 

    public EmplAbsence() 
    { 
    } 
    public EmplAbsence(string firstname, string lastname) { 
     this.firstname = firstname; 
     this.lastname = lastname; 
    } 
} 

这是输出:

enter image description here

查询工作在SQL服务器管理器,但它似乎没有不打印出指定的字符串。我需要它看起来像这样能在一个Java客户端应用程序使用它:

enter image description here

任何帮助,将不胜感激!这可能是一个小错误,但我一直在研究我的头相当一段时间。

+0

可能在EmplAbsence的构造函数中存在问题? – KoViMa

回答

0

验证您的构造函数是否正确设置了值后,您需要使用DataContractDataMember属性指定想要序列化的类的哪些成员。

using System.Runtime.Serialization; 

[DataContract(Name="MostSick")] 
public class EmplAbsence 
{ 

    [DataMember] 
    public string FirstName {get;set;} 
} 

,并在您的服务方法返回的Array而不是List<T>

return emplAbsence.ToArray();

相关问题