2014-02-20 2 views
0

Я хотел бы получить JSon данные из веб-method.In здесь я хотел бы получать новости & языка как данные, но здесь только рабочие новости только. (Не удалось получить Speaker)Получить данные в формате JSON от WebMethod к применению

Вот моя хранимая процедура

ALTER procedure [dbo].[LoadDayEvents] 
@Date date 
as 
begin 
select News,Speaker from Eventstbl 
where DateToBePublished = CONVERT(date, @Date) 
end 

Вот мой веб-метод

[WebMethod, ScriptMethod] 
public static string SelectEventDate(string date) 
{ 
    string News= ""; 
    string Speaker = ""; 

    try 
    { 
     SqlCommand comld = new SqlCommand("LoadDayEvents", conDB); 
     comld.CommandType = CommandType.StoredProcedure; 
     comld .Parameters.Add("@Date", SqlDbType.Date); 
     comld .Parameters["@Date"].Value = DateTime.Parse(date).Date; 
     if (conDB.State == ConnectionState.Closed) 
      conDB.Open(); 
     News = comld .ExecuteScalar().ToString(); 
     Speaker = comld .ExecuteScalar().ToString(); // Thisone is not working 
    } 
    catch (Exception ee) { } 
    finally { conDB.Close(); } 
    return News; 
} 

Здесь я использую Ajax/JSON, чтобы получить его

<script type="text/javascript"> 
    $(document).ready(function() { 

     var urinews = '<%= ResolveUrl("WebMethods.aspx/SelectEventDate") %>'; 
     var localtime = new Date(); 
     var today = localtime.getFullYear() + '/' + (localtime.getMonth() + 1) + '/' + localtime.getDate(); 


     $.ajax({ 
      type: "POST", 
      url: urinews, 
      data: "{ date: '" + today + "'}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      async: true, 
      cache: false, 
      success: function (msg) { 
       $("#daily_news_Selection").append("<p>" + msg.d + "</p>"); 
      }, 
      error: function (x, e) { 
      } 
     }); 
    }); 
</script> 
+0

Ваш код, кажется, частично. Где определяется переменная Verse? – ajp

+0

Verse? Я уже удаляю это. – TechGuy

+0

@ajp Я хотел получить имя динамика в веб-методе. Новости работают – TechGuy

ответ

1

Вы можете вернуть пользовательский класс

var newsAndSpeaker = new NewsAndApeaker() { News = News, Speaker = Speaker}; //or define a custom class that has these two properties 
return newsAndSpeaker; 

На Javascript, вы можете получить доступ к двум переменным, используя

msg.d.News //news 
msg.d.Speaker 

Или, вы можете вернуть список строки

var newsAndSpeaker = new List<string>() { News, Speaker}; //or define a custom class that has these two properties 
return newsAndSpeaker; 

В Javascript вы можете получить доступ к двум переменным, как в массиве

msg.d[0] //mews 
msg.d.[1] //speaker 

Если ваш вопрос, почему ваша вторая собственность не получает заселена, то название кажется неправильным

+0

В возвратной части отображается ошибка «newsAndSpeaker» не существует в текущем контексте – TechGuy

+0

@ user850307: разрешили ли вы разрешить вышеизложенное? – ajp

+0

Да, используя ваш code.it resolved – TechGuy

Смежные вопросы