2016-05-22 9 views
-1

私はpostgresデータベースを持っているので、新しい.net Core RC2をNpgsqlでテストしています。私はこのすべてに新しいですが、私がやろうとしているのは、データベースから5レコードを取り出し、それをJson形式で戻すことです。しかし、私はすべての5つのレコードが返されていることがわかりますが、私は1レコードしか出力できません。私はC#.net core npgsqlを使用してすべての行を取得する方法

public JsonResult About() 
{ 
    using (NpgsqlConnection conn = new NpgsqlConnection("myconnection")) 
    { 
     conn.Open(); 

     string city=""; 
     string state= ""; 
     NpgsqlCommand cmd = new NpgsqlCommand("select city,state from streams limit 5", conn); 

     using (var reader = cmd.ExecuteReader()) 
     { 
      while (reader.Read()) 
      { 
       city = reader.GetString(reader.GetOrdinal("city")); 
       state = reader.GetString(reader.GetOrdinal("state")); 
      } 
     } 
     return Json(city); 
    } 
} 

答えて

2

私は街の値を推測している...ここで行方不明ですが、最後の都市が含まれますJSONオブジェクトに返され、状態がクエリから返されました。 whileループは、各反復のcity変数を上書きします。

各都市と州を配列に格納すると、5つの都市すべてを返すことができます。

コード更新

string city=""; 
string state= ""; 
NpgsqlCommand cmd = new NpgsqlCommand("select city,state from streams limit 5", conn); 

var cities = new string[5](); 
using (var reader = cmd.ExecuteReader()) 
{ 
    var i = 0; 
    while (reader.Read()) 
    { 
     city = reader.GetString(reader.GetOrdinal("city")); 
     state = reader.GetString(reader.GetOrdinal("state")); 

     cities[i++] = city; 
    } 
} 

// Aggregate into one string 
var citiesString = String.Join(", ", cities); 

return Json(citiesString); 

アレイはあなただけでJSONを使用してjavascript配列にシリアライズされます配列を返すことができる一方

を返します。

string city=""; 
string state= ""; 
NpgsqlCommand cmd = new NpgsqlCommand("select city,state from streams limit 5", conn); 

var cities = new string[5](); 
using (var reader = cmd.ExecuteReader()) 
{ 
    var i = 0; 
    while (reader.Read()) 
    { 
     city = reader.GetString(reader.GetOrdinal("city")); 
     state = reader.GetString(reader.GetOrdinal("state")); 

     cities[i++] = city; 
    } 
} 
return Json(cities); 
+0

ありがとうございました。私の問題を解決しました。 – user1591668

0

私はEntity Frameworkを使用し、モデルをjsonにシリアル化することをお勧めします。 Npgsql.EntityFrameworkCore.PostgreSQL-Pre Nugetパッケージをチェックアウトします。

+0

こんにちは、Entity Frameworkで行を取得するサンプルがありますか? –

関連する問題