我想在使用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 :(得分:2)
您需要打印出结果形式:
Console.WriteLine(String.Format("{0}", reader[0]));
reader[0]
这里表示从获取的表中获取结果集的第一列的值。
或者您也可以指定列名称,如:
Console.WriteLine(String.Format("{0}", reader["Keys"]));
答案 1 :(得分: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>