2011-03-29 2 views
0

현재 MySQL 백엔드가 포함 된 실버 라이트 앱을 개발하려고 합니다만 큰 문제가 있습니다. 내가 선Silverlight 및 MySQL 문제

string resultType = completeResult["returnType"].ToString().Replace('"', ' ').Trim(); 

에 데이터를 검색해야 버튼을 클릭하면 아래

<?php 
    include("config.php"); 
    $query = "SELECT * FROM test_table"; 
    $result = mysql_query($query) or die(mysql_error()); 

    $array=array(); 

    while ($row = mysql_fetch_array($result)) 
    { 
     $array[] = array("FirstName"=>$row['firstName'], 
      "LastName"=>$row['lastName'], 
      "Age"=>$row['age']); 

    } 
    mysql_close(); 

    $returnItems = array("returnType"=>"Names", 
     "results"=>$returnItems); 

    $JSONResult = json_encode($array); 

    echo $JSONResult; 
?> 

가 내 C#의 실버 코드

WebClient wc; 
     public MainPage() 
     { 
      InitializeComponent(); 
      wc = new WebClient(); 
      wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted); 
     } 

     private void btnGetData_Click(object sender, RoutedEventArgs e) 
     { 


      wc.DownloadStringAsync(new Uri("/getData.php")); 

     } 

     void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
     { 
      MessageBox.Show("Downloading Data 2"); 
      try 
      { 
       JsonValue completeResult = JsonPrimitive.Parse(e.Result); 
       string resultType = completeResult["returnType"].ToString().Replace('"', ' ').Trim(); 

       JsonArray arrayJson = (JsonArray)completeResult["results"]; 
       foreach (JsonValue item in arrayJson) 
       { 
        string firstName = arrayJson["FirstName"].ToString().Replace('"', ' ').Trim(); 

        MessageBox.Show("First Name: " + firstName); 
       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 

    } 

입니다 : 아래

내 PHP 코드입니다 '이 메소드 또는 속성은 다음에서 지원되지 않습니다. System.Json.JsonArray 유형의 JSON 값 일부 작업은 JSON 배열에서만 수행 할 수 있으며 일부 작업은 JSON 객체에서만 수행 할 수 있습니다.

이 문제를 해결하기 위해 무엇을 시도 할 수 있는지 잘 모르겠습니다.

도움을 주셔서 감사합니다.

+0

나, 또는 그게'json_encode ($ returnItems);'이어야합니까? – Wrikken

+0

당신이 제안한 것을 시도했지만 브라우저에서 수동으로 PHP 스크립트를 실행했을 때 MySQL의 데이터 중 {returnType ":"Names ","results ": null} – Boardy

+0

Boardy, error_reporting으로'E_ALL'과 display_errors를 on으로 만들면'$ returnItems'에 대한 언급이 정의되지 않은 것을 볼 수 있습니다. 해결책은 다음과 같습니다 :'$ returnItems = array ("returnType"=> "Names", "results"=> $ array)'; – Wrikken

답변

0

왜 XML 모드에서 쿼리를 실행하지 않습니까? 선택 명령을 한 후 MSSQL에서

는 XML의 PATH ('노드')

다음 xml.linq.xelement 테스트 = Xml.Linq.Xelement.Parse (e.result)

TIZ

위한 추가