【发布时间】:2021-05-28 14:21:28
【问题描述】:
我在向 Microsoft Access 添加日期/时间时遇到问题,这是我的代码:
private void submit_Click(object sender, EventArgs e)
{
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "insert into DailyLog (EmployeeID,BusNumber,RouteID,DestinationID,ActivityID,Date,MilesDriven,GasInGallons,Comments) values('"+ employee.SelectedValue + "','" + bus.SelectedValue + "','" + route.SelectedValue + "','" + dest.SelectedValue + "','" + activity.SelectedValue + "','" + theDate.Value.ToString("MM/dd/yyyy") + "','" + miles.Value + "','" + gas.Value + "','" + comments.Text + "')";
command.ExecuteNonQuery();
MessageBox.Show("Your log has been submitted.");
connection.Close();
}
catch(Exception ex)
{
MessageBox.Show("Err: " + ex);
connection.Close();
}
}
它只给我一个“日期”的语法错误。我该怎么办?我已尝试修复属性,将其设为短日期、一般日期等。似乎对我没有任何效果。
【问题讨论】:
-
您的数据库 ms-access 中
Date的数据类型是什么? -
使用参数来阻止 SQLi。将
Date包裹在[]中,这将成为[Date],因为它是插入语句中的保留关键字。此外,如果您使用参数,则不会存在此类问题。还值得一提的是,It is giving me a syntax error,这不是描述性的。 -
目前我把它作为短日期。虽然它是短日期,但我在我的视觉工作室日期尝试了各种不同的属性,例如短和自定义 (MM/dd/yyyy),同时尝试 ToString("MM/dd/yyyy") 和甚至 ToShortDateString()...
-
如果是短日期,你不应该使用
'(单引号),而是使用哈希# -
我会确保在参数中包含日期。至于通过一个简短的日期,你能告诉我一个带有标签而不是单引号的例子吗?