我正在创建一个MS Access作为数据库后端的C#项目。我想显示两个日期之间的价格总和。我已创建以下查询方法:两个日期之间的总收入不工作c#ms访问数据库
public DataTable selectDates(string dateFrom,string dateTo)
{
initilize();
_conn.ConnectionString = _cs;
_cmd.Connection = _conn;
_cmd.CommandText = "Select Sum(tPrice) AS Price from [tblInventory] where Date_Of_Installation BETWEEN '" + dateFrom + "' AND '" + dateTo + "'";
_da.SelectCommand = _cmd;
_da.Fill(_dt);
return _dt;
}
在窗体端我有两个时间选择器和一个按钮:
private void btnTotalRevenue_Click(object sender, EventArgs e)
{
dt = db.selectDates((pickerDateFrom.Text).ToString().Trim(), (pickerDateTo).ToString().Trim());
string a = dt.Rows[0]["Price"].ToString();
MessageBox.Show(a);
}
但在MessageBox是显示一个空字符串:。
由于一直在答案中指出,Access查询中的日期文字需要用'#'字符包装,并且应该在'MDY'而不是'DMY'中。但是,请考虑使用[参数](https://msdn.microsoft.com/en-us/library/system.data.oledb.oledbparameter%28v=vs.110%29.aspx),而不是混淆字符串格式(除了避免SQL注入的一般好处,并且可以重用查询计划)。 –