Как получить много полей на запрос веб-службы - PullRequest
0 голосов
/ 23 марта 2019

Я заставляю веб-сервис получать данные с сервера sql. Мне нужно получить много полей с сервера SQL, но я могу получить только одно поле, которое является именем Currancy

namespace WebApplication2
{
    public class DataHelper
    {
        public static string GetCurrency(string currencyCode)
        {
            string currencyName = "";
            SqlConnection con = new SqlConnection(@"Data Source=WEB3\SHAREPOINT;Initial Catalog=WSS_Search_WEB3;Integrated Security=True");
            SqlCommand cmd = new SqlCommand("select PO_NUMBER,PO_STATUS from View_1 where PO_HEADER_ID ='" + currencyCode.ToUpper() + "'", con);
            con.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                currencyName = dr["PO_NUMBER"].ToString();     
            }
            dr.Close();
            con.Close();
            return currencyName;
        }
    }
}

Мне нужно получить PO_Number & PO Status из запроса

Ответы [ 2 ]

0 голосов
/ 23 марта 2019

Один из вариантов - вернуть массив, содержащий два значения.Обратите внимание string[]:

public static string[] GetCurrency(string currencyCode)

Аналогично тому, как вы объявили string currencyName = "";, вместо этого создайте переменную массива:

string[] poData = new string[2];

Поскольку это выглядит так, как будто она должна вернуть одну строку, яне будет циклПросто сделайте Read():

dr.Read();
poData[0] = dr["PO_NUMBER"].ToString(); //poData[] will have to be declared in your method
poData[1] = dr["PO_STATUS"].ToString();
....
return poData;
0 голосов
/ 23 марта 2019

Насколько я понимаю, вам нужно вернуть не только PO_NUMBER, но и PO_STATUS, и, насколько я понимаю, вы хотите вернуть оба значения.

Я предлагаю вам сделать модель, которая представляет то, что вы хотите вернуть.

Итак, для этого мы вызываем класс модели, например, POModel:

public class POModel
{
    public string currencyName { get; set; } // PO_Number
    public string statusName { get; set; } // PO_Status
}

Чем получить значения из SQL, как вы это сделали, и вернуть объект вместо строки.

Вот как будет выглядеть окончательный код, конечно же, присвоение имен и все, что вы можете изменить, если подходит лучше всего:

public class DataHelper
{
    public static POModel GetCurrency(string currencyCode)
    {
        //string currencyName = "";
        var poModel = new POModel();
        SqlConnection con = new SqlConnection(@"Data Source=WEB3\SHAREPOINT;Initial Catalog=WSS_Search_WEB3;Integrated Security=True");
        SqlCommand cmd = new SqlCommand("select PO_NUMBER,PO_STATUS from View_1 where PO_HEADER_ID ='" + currencyCode.ToUpper() + "'", con);
        con.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            poModel.currencyName = dr["PO_NUMBER"].ToString();
            poModel.statusName = dr["PO_STATUS"].ToString();
        }
        dr.Close();
        con.Close();
        //return currencyName;
        return poModel;
    }
}

public class POModel
{
    public string currencyName { get; set; }
    public string statusName { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...