如何使用c#将数据从datetimepicker插入到ms访问
本文关键字:插入 ms 访问 datetimepicker 何使用 数据 | 更新日期: 2023-09-27 18:16:23
我是初学者,我正在使用从datetimepicker插入数据到ms访问。我的代码是:
private void SaveSale()
{
string connString = ConfigurationManager.ConnectionStrings["saledbx"].ConnectionString;
string cmdString = "INSERT INTO Sale (Date, Sale, Expense) VALUES (@Date, @Sale, @Expense)";
using(OleDbConnection con = new OleDbConnection(connString))
{
using(OleDbCommand cmd = new OleDbCommand(cmdString, con))
{
con.Open();
cmd.Parameters.AddWithValue("@Date", TodayDatePicker.Text);
cmd.Parameters.AddWithValue("@Sale", SaleTextBox.Text);
cmd.Parameters.AddWithValue("@Expense", ExpenseTextBox.Text);
cmd.ExecuteNonQuery();
MessageBox.Show("Today Sale is added Successfully!", "Sale Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
我面对这个错误:
类型为"System.Data.OleDb"的未处理异常。在System.Data.dll中发生OleDbException
附加信息:INSERT INTO语句语法错误。
日期为保留关键字。如果不能更改该字段的名称,则应将其括在方括号
中。string cmdString = "INSERT INTO Sale ([Date], Sale, Expense) VALUES (@Date, @Sale, @Expense)";
接下来,我特别建议使用Add而不是AddWithValue,因为您正在处理容易出现许多转换错误的日期。
cmd.Parameters.Add("@Date", OleDbType.Date).Value = TodayDatePicker.Value;
通过这种方式,您可以告诉数据库引擎所传递参数的确切数据类型,并避免从字符串到日期时间值的任何转换