Web Service查询未在数组中显示字符串

时间:2014-05-22 15:58:02

标签: c# web-services

嗨我在尝试将查询的内容(字符串)作为arraylist返回时遇到问题。我已经使用我的一个查询进行了管理,但是我无法用另一种方法重现它。 (我有一个EmplAbsence类)

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 Server Manager中有效,但似乎没有打印出指定的字符串。我需要它看起来像这样才能在Java客户端应用程序中使用它:

enter image description here

任何帮助将不胜感激!这可能是一个小错误,但我已经用这个问题磨了很长时间。

1 个答案:

答案 0 :(得分:0)

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

using System.Runtime.Serialization;

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

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

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

return emplAbsence.ToArray();