2016-05-18 15 views
0

私はasp.net webAPiで作業しています。私はLoanInfoクラス を作成しました。値は関数に設定され、最後にLoanInfoをリストに入れました。私はJsonでLoanInfoのすべての値を取得したいが、リストは常に[{}、{}]のような空の値を返す。私は何が欠けている。 これがこの方法事前にWebAPiのJSonにオブジェクトのリストを取得する方法

public IEnumerable Get() 
     { 
      var con = new SqlConnection(sqlConStr); 
      List<LoanInfo> loanInfo = new List<LoanInfo>(); 
      String query = "select EmpID,amount from employeeLoan"; 
      var cmd = new SqlCommand(query, con); 

      try 
      { 
       con.Open(); 
       SqlDataReader read = cmd.ExecuteReader(); 
       while (read.Read()) 
       { 
        loanInfo.Add(new LoanInfo(read[0].ToString(), read[1].ToString())); 
       } 

       return loanInfo.ToList(); 
      } 
      catch (Exception ex) 
      { 

       String a = ex.Message; 
       return null; 
      } 
      finally 
      { 
       con.Close(); 
      } 

     } 

おかげでloanInfo

public class LoanInfo 
     { 

      private String EmpID; 
      private String amount; 


      public LoanInfo(String EmpID,String amount) 
      { 


       this.EmpID = EmpID; 
       this.amount = amount; 

      } 

です!

+0

あなたはread' 'の内部を見て試してみる、あなたは'読んで見れば、それは何かを返すん[0] .ToString () '?新しいLoanInfo(新しいLoanInfo(read.getString(0)、read)。 –

+0

の代わりに 'loanInfo.Add(newLanInfo(read [0] .ToString()、read [1] .ToString())); getString(1))); ' –

+0

loanInfo変数が空の場合は、データベースからデータを読み取る際に問題がある可能性があります。 @CyrilGandonのように、読書変数の中に何があるか教えてください。 – CrazyDog

答えて

2

プライベート属性があるため、シリアル化が発生するとプライベート値を読み取ることができません。プライベートフィールドの代わりにDTOのプロパティを作成してみてください。私はあなたのコードをリファクタリングしまし

public class LoanInfo 
{  
    public string EmpID { get; set; } 
    public string Amount { get; set; } 

    public LoanInfo(string empID, String amount) 
    { 
     this.EmpID = EmpID; 
     this.Amount = amount; 
    } 
} 

、これを試してみてください。

public IEnumerable<LoanInfo> Get() 
{ 
    List<LoanInfo> loanInfo = new List<LoanInfo>(); 

    using (var con = new SqlConnection(sqlConStr)) 
    { 
     try 
     { 
      con.Open(); 
      var cmd = new SqlCommand("select EmpID, amount from employeeLoan", con); 
      SqlDataReader read = cmd.ExecuteReader(); 
      while (read.Read()) 
      { 
       loanInfo.Add(new LoanInfo(read[0].ToString(), read[1].ToString())); 
      } 
     } 
     catch (Exception ex) 
     { 
      return null; 
     } 
     finally 
     { 
      con.Close(); 
     } 
    } 

    return loanInfo; 
} 
+0

私は非常にですうれしい、それは魅力のように動作します! –

関連する問題