2013-06-07 4 views
0
public Users GetUserById(string _id) 
    { 
     MySqlConnection conn = new MySqlConnection(connstr); 
     conn.Open(); 
     string sql = ("select * from Books where id = " + _id); 

     MySqlCommand cmd = new MySqlCommand(sql, conn); 
     MySqlDataReader reader = cmd.ExecuteReader(); 
     Users obj = new Users(); 
     if (reader.Read()) 
     { 
      obj.id = Convert.ToInt32(reader[0]); 
      obj.UserName = reader[1].ToString(); 

     } 
     reader.Close(); 
     conn.Close(); 
     return obj; 
    } 

내가 JSON 형식의 정보 만 출력는 WCF 나머지

이에 대한 투입을 puuling하고 사용하여 JSON 형식의 데이터베이스에서 하나의 레코드를 요청, "존"을 "ID": 1 }

아웃 예상 넣어이다 : [{ "사용자 이름": "존", "ID": 1}] 나는 광장을 잃었

레코드 에 대한 교정기 뭐죠 내 코드의 문제?

+0

위 코드의 작업 계약은 [OperationContract] [WebGet (UriTemplate = "사용자/{ID}", ResponseFormat = WebMessageFormat.Json)] 사용자 GetUserById (문자열 ID)입니다. –

답변

3

예상 출력 : [{"UserName":"John","id":1}]Users 개체 목록을 나타냅니다.

그런 출력을 함수에서 반환해야한다면 함수에서 사용자 목록을 반환하면됩니다.

그러나 함수 이름 GetUserById 같은

, 나는 그것이 단일 사용자를 반환해야한다고 생각 (그래서 나는이에서 사용자의 배열을 반환하려고하는 이유를 알고하지 않습니다)

을 어쨌든 당신이 예상 출력을 얻을 수 있습니다 이 users는 JSON 형식으로 변환 할 때마다이 방법

public List<Users> GetUserById(string _id) 
{ 
    MySqlConnection conn = new MySqlConnection(connstr); 
    conn.Open(); 
    string sql = ("select * from Books where id = " + _id); 

    MySqlCommand cmd = new MySqlCommand(sql, conn); 
    MySqlDataReader reader = cmd.ExecuteReader(); 

    List<Users> users=new List<Users>(); 
    Users obj = new Users(); 
    if (reader.Read()) 
    { 
    obj.id = Convert.ToInt32(reader[0]); 
    obj.UserName = reader[1].ToString(); 
    users.Add(obj); 
    } 
    reader.Close(); 
    conn.Close(); 
    return users; 
} 

지금, 그것은 예상 출력을 반환합니다.