2017-10-02 3 views
0

こんにちは私はVSとASP.NETで作業しています。テーブルから値を取得しようとしていますが、Jsonを単純なテキストにデコードまたは解析する必要があります。私は本当に助けていただきありがとうございます。 これは私が得るものです。 enter image description here JSONデータの解析ASP.NET C#とRazor

[HttpGet] 
 
     public ActionResult GetData() 
 
     { 
 
      string stdb = "Data Source=DMX87025;Initial Catalog=DB_PCC;Integrated Security=True"; 
 
      SqlConnection conn = new SqlConnection(stdb); 
 
      string sql = "SELECT *FROM[DB_PCC].[dbo].[Departments]"; 
 
      SqlCommand cmd = new SqlCommand(sql, conn); 
 
      conn.Open(); 
 

 
      SqlDataReader rd = cmd.ExecuteReader(); 
 

 
      var st = "kyo please help me u.u"; 
 
      return Json(new { success = true, message = rd }, 
 
       JsonRequestBehavior.AllowGet); 
 
     }
これは私のAJAXです...

<div id="result"></div> 
 
<input type="button" name="name" value="try" onclick="DepListQuery()" /> 
 

 
<script> 
 

 
    function DepListQuery() { 
 

 

 
     $.ajax({ 
 
      type: 'GET', 
 
      url: '@Url.Action("GetData","Home")', 
 
      contentType: "application/json; charset=utf-8", 
 
      dataType: "json", 
 
      success: function (response) { 
 

 
       $('#result').text(response.message); 
 
      }, 
 
      failure: function (response) { 
 
       alert("something get wrong u.u"); 
 
      } 
 
     }); 
 
    } 
 

 
    
 

 
</script>

+0

'ExecuteReader()'の後にデータを読み込んでモデルに変換し、そのモデルのコレクションを返す必要があります。その後、スクリプト内のコレクションをループします。 –

+0

'SqlDataReader rd = cmd.ExecuteReader();'次に、 'message = rd'を設定します。文字列を取得するには、 'rd.Read()'を実行する必要があります。 –

答えて

1

あなたはSqlDataReaderからデータを読み取るどのように修正する必要がある最初の事です。 http://csharp-station.com/Tutorial/AdoDotNet/Lesson04

しかし、さらにデータを直接オブジェクトに読み込む方がよいでしょう。そのような拡張メソッドを作成の詳細についてはこの回答を参照してください:Convert rows from a data reader into typed results

サンプル拡張メソッド:一度、その後

var departmentList = reader.ReadList(x => new Department { 
              DeptID = x.GetInt32(0), 
              DeptName = x.GetString(1) 
            }); 

public static List<T> ReadList<T>(this IDataReader reader, 
            Func<IDataRecord, T> generator) { 
    var list = new List<T>(); 
    while (reader.Read()) 
     list.Add(generator(reader)); 
    return list; 
} 

あなたSqlDataReader rd = cmd.ExecuteReader();行の後、次のようなものが必要だろうあなたはそのようなオブジェクトのリストを持っています、それらをフロントエンドビューに戻すことができますajax:

How to parse JSON list of string on ajax return?

List of Objects To Json String

私はまた、あなたのSqlConnectionなどSqlCommandSqlDataReaderusingでブロックを囲む必要があることに注意したいです。

+0

あなたはより明示的な例を投稿することができます。私はasp.netとC#で親切です。 –