Как я могу увидеть datatable, который является возвращением из метода веб-сервиса - PullRequest
0 голосов
/ 06 января 2010

Я пытаюсь использовать данные из метода веб-службы. Я могу видеть возвращаемое значение, когда это строковые данные. Это мой код, и он возвращает предупреждение hatada: null

 $.ajax(
            {
                type: 'POST',
                url: 'http://localhost:40764/HastaTahlilUyariServisi.asmx/Hello',
                data: "{_sTcKimlikNo: '111111111111', _iKlinikKodu:121212, _bAy:12, _iYil:2009}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(ajaxCevap) {
                    alert('basarili: ' + ajaxCevap); //$('#dv').html(ajaxCevap.d);
                },
                error: function(xhr, status) {                   
                    alert("hatada:" + xhr.responseXML);
                },
                beforeSend: function() {
                    alert('gonderilecek');
                },
                afterSend: function() {
                    alert('gonderildi');
                },
                complete: function(xhr, status) {
                    if (status == 'success')
                        alert('success' + $.httpData(xhr));
                }
            }

и это мой метод веб-сервиса:

  [WebMethod]
    public DataTable Hello(string _sTcKimlikNo, int _iKlinikKodu, byte _bAy, int _iYil)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("ad");
        DataRow rw = dt.NewRow();
        rw[0] = _sTcKimlikNo + " " + _iKlinikKodu + " " + _bAy + " " + _iYil;
        return dt;
    }

Как я могу увидеть данные из метода веб-сервиса? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 26 июня 2012

Нет проблем с сериализацией, просто назовите вашу таблицу данных, и это решит проблему.

public DataTable LineChrt() {
  string query = "select m.class,sum(m.plannedvisits)" + 
    "plannedvisits,sum(m.actualvisits) actualvisits from vw_MTD_TgtVsAct_Calls1 m " +
    "where 1=1 and m.class in ('A','B','C')  and m.month = 6 " +
    "group by m.class";
  string constr = System.Configuration
    .ConfigurationSettings.AppSettings["PocketDCR"];
  DataTable data = new DataTable();
  SqlDataAdapter LCData = new SqlDataAdapter(query,constr);
  LCData.Fill(data);
  data.TableName = "ChartData";
  return data;
}
0 голосов
/ 06 января 2010

Не думаю, что вы можете вернуть DataTable из веб-службы из-за проблем с сериализацией. Эта статья Microsoft предлагает вместо этого вернуть DataSet:
Проблемы с использованием веб-службы XML, которая возвращает DataTable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...