【发布时间】:2013-05-24 22:33:53
【问题描述】:
我不确定为什么会这样。我在网上看到了同样的问题,但几乎没有人帮忙纠正它。
当我在 Access 中运行我的查询时,我得到了从 0 到 10 的不同值,但由于某种原因,它不会在我的代码中返回相同的值。
static int OrdersPerHour(string User)
{
int? OrdersPerHour = 0;
OleDbConnection conn = new OleDbConnection(strAccessConn);
DateTime curTime = DateTime.Now;
try
{
string query = "SELECT COUNT(ControlNumber) FROM Log WHERE DateChanged > #" + curTime.AddHours(-1) + "# AND User = '" + User + "' AND Log.EndStatus in ('Needs Review', 'Check Search', 'Vision Delivery', 'CA Review', '1TSI To Be Delivered');";
OleDbCommand dbcommand = new OleDbCommand(query, conn);
dbcommand.Connection.Open();
dbcommand.CommandType = CommandType.Text;
dbcommand.CommandText = query;
OrdersPerHour = (int?)dbcommand.ExecuteScalar();
}
catch (OleDbException ex)
{
}
finally
{
conn.Close();
}
return OrdersPerHour.Value;
}
【问题讨论】:
-
您可能需要编辑以改进 Markdown 的格式。你的意思是在 try{} 中包含一些代码吗?
-
请使用参数... SQL注入很真实
-
1.) 请使用Parameterized Queries。 2.) 为什么你有一个空的
Try Catch Finally?这只是为了确保连接关闭吗?您应该在using声明中包含您的OleDbConnection。
标签: c# oledb executescalar