2017-09-12 1 views
0

MVCを使用して、データベースからのデータをページビューにレンダリングしたいだけです。次のようにMVCデータベースに接続してデータを返す

私のコントローラメソッドは次のとおりです。

public ActionResult Index() 
{ 

    string constr = ConfigurationManager.ConnectionStrings["Database"].ConnectionString; 
    string query = "SELECT top 10 Keys FROM dbo.TestTable"; 
    using (SqlConnection con = new SqlConnection(constr)) 
    { 

     SqlCommand cmd = new SqlCommand(query, con); 
     con.Open(); 
     SqlDataReader reader = cmd.ExecuteReader(); 
     try 
     { 
      while(reader.Read()) 
      { 
       Console.WriteLine(String.Format("{0}", reader)); 
      } 
     } 
     finally 
     { 
      reader.Close(); 
     } 
    } 


    return View(); 
} 

対応するモデルは超簡単です:

public string Keys{ get; set; } 

私はこれをデバッグしてきたし、それが正しく私のデータベースに接続されます。私は自分のデータベースでSQLクエリを実行し、結果を返します。しかし、以下のコードを実行すると-1の結果値が得られます。

私は間違っていますか?

+0

あなたが使用している実際のリターンコードを使用してコンソールの書き込み行を編集することができます? –

答えて

0
public ActionResult Index() 
{ 
    List<string> result = new List<string>(); 
    string constr = ConfigurationManager.ConnectionStrings["Database"].ConnectionString; 
    string query = "SELECT top 10 Keys FROM dbo.TestTable"; 
    using (SqlConnection con = new SqlConnection(constr)) 
    { 

     SqlCommand cmd = new SqlCommand(query, con); 
     con.Open(); 
     SqlDataReader reader = cmd.ExecuteReader(); 
     try 
     { 
      while(reader.Read()) 
      { 
        result.Add(reader[0].ToString()); 
      } 
     } 
     finally 
     { 
      reader.Close(); 
     } 
} 


    return View(result); 
} 

@model IEnumerable<string> 

<ul> 
@foreach (var item in model) 
    <li>@item</li> 
} 
</ul> 
2

あなたはそれが好きで形成し、結果をプリントアウトする必要があります。ここに

Console.WriteLine(String.Format("{0}", reader[0])); 

reader[0]が取り出され、テーブルから結果セットの最初のカラムの値を取得することを意味します。

か、また、同様に、列名を指定することができます。

あなたのビューで次に
Console.WriteLine(String.Format("{0}", reader["Keys"])); 
関連する問題