Привет, У меня проблема при попытке вернуть содержимое запроса (строки) в качестве 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:
Любая помощь приветствуется! Вероятно, это небольшая ошибка, но я довольно долго помогал мне в этом.
Убедившись, что ваш конструктор правильно устанавливает значения, вам нужно указать, какие члены вашего класса вы хотите сериализовать, используя атрибуты DataContract
и DataMember
.
using System.Runtime.Serialization;
[DataContract(Name="MostSick")]
public class EmplAbsence
{
[DataMember]
public string FirstName {get;set;}
}
и возвратите Array
вместо List<T>
в ваш метод обслуживания.
return emplAbsence.ToArray();