【发布时间】:2022-01-27 23:50:37
【问题描述】:
我想做的是从我的数据库中查询并填充我的Index.cshtml 中的列。
下面是我的代码:
这是来自我的HomeController:
SqlConnection con = new SqlConnection("Data Source=LAPTOP;Initial Catalog=SchedulerEvent;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework");
public JsonResult GetEvents()
{
con.Open();
SqlCommand command = new SqlCommand("SELECT * FROM Event", con);
command.ExecuteNonQuery();
var events = command;
return new JsonResult { Data = events, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
这是我的数据库的样子:
进一步检查显示它为空的区域
我在我的前端控制台登录,下面的图片就是它打印的内容:
这不应该是这样,因为我的查询是SELECT * FROM Event,但它没有获取我的表的内容。
但问题是,正如您从我的数据库截图中看到的那样,Subject 列不是空的或 null。
感谢任何建议
【问题讨论】:
-
看起来你所做的只是打开连接,实际从数据库中获取事件的查询在哪里?
-
我编辑了我的答案以包括从我的数据库中查询的命令,仍然有同样的错误
-
您是否添加了断点以确保将某些内容发送回视图?如果是这样,我会在读取内容之前使用 debugger; 以查看您拥有的值以及客户端数据的结构。
-
显然是在打印连接对象,而不是查询结果。您需要存储执行实际查询的结果。请参阅 SqlCommand 的文档。
-
您正在使用
.ExecuteNonQuery()- 但这仅适用于您执行UPDATE、DELETE或INSERT- 任何不返回结果集的操作。在这里,使用SELECT,您想要将数据作为结果集取回 - 因此您需要使用ExecuteReader(然后遍历返回的行) - 或使用类似可以为您处理所有细节的低级代码的 Dapper!
标签: c# asp.net-mvc-4 sqlcommand