嗨我在尝试将查询的内容(字符串)作为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;
}
}
这是输出:
该查询在SQL Server Manager中有效,但似乎没有打印出指定的字符串。我需要它看起来像这样才能在Java客户端应用程序中使用它:
任何帮助将不胜感激!这可能是一个小错误,但我已经用这个问题磨了很长时间。
答案 0 :(得分:0)
在验证构造函数是否正确设置值后,您需要使用DataContract
和DataMember
属性指定要序列化的类的成员。
using System.Runtime.Serialization;
[DataContract(Name="MostSick")]
public class EmplAbsence
{
[DataMember]
public string FirstName {get;set;}
}
并在您的服务方法中返回Array
而不是List<T>
。
return emplAbsence.ToArray();