我正在創建一個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注入的一般好處,並且可以重用查詢計劃)。 –