2014-05-22 72 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();

相關問題