【发布时间】:2018-05-22 09:09:08
【问题描述】:
我在 C# MVC 上使用以下 Access 查询来比较两个表并返回用户选择的日期范围和机器内的记录。查询代码在实际的 Access 数据库上完美运行,但我猜连接字符串和返回结果的代码有问题。我不确定代码有什么问题,如果有人可以帮助我确定问题所在,我将不胜感激。谢谢!
C# MVC 控制器代码:
public ActionResult MissingChecksheets(string startDate, string endDate, string machine)
{
var query = $@"SELECT * FROM [TrackingLog]
WHERE [TrackingLog].[Workcenter] = '{machine}' AND
[TrackingLog].[Complete Date] > #{startDate}# AND
[TrackingLog].[Complete Date] < #{endDate}# AND
[TrackingLog].[Order Item] NOT IN (SELECT [OrderNum] FROM [dbo_Checksheet])";
var sheets = new List<Checksheet>();
using (var con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Checksheets.accdb;"))
{
using (var command = new OleDbCommand(query, con))
{
con.Open();
using (var reader = command.ExecuteReader())
{
while (reader.NextResult())
{
sheets.Add(new FabChecksheet
{
OrderNum = reader.GetString(0),
PartNum = reader.GetString(1)
});
}
}
}
}
return PartialView(sheets);
}
【问题讨论】:
-
你有什么错误吗?
-
你可以试试
while (reader.Read())而不是.NextResult()。 -
不,没有任何错误。但是当我运行代码时,OrderNum 和 PartNum 列是空的,并且没有生成任何结果。但是,当我将查询代码粘贴到 MSAccess 数据库查询上时,会生成记录。
-
@CharlesMay 成功了,查尔斯!非常感谢!
-
来自
access的标签-“不要将此标签用于Microsoft Access,请改用ms-access。
标签: c# html asp.net-mvc ms-access