c# - INSERT INTO 语句中的语法错误 c#.net Winforms Devexpress?

标签 c# winforms ms-access

我从 DateEdit 获取日期并尝试存储到 Access 数据库中。但是它显示这样的错误

INSERT INTO 语句中的语法错误。

我的插入语句是这样的

 OleDbCommand top = new OleDbCommand("INSERT INTO invoice(invoice_number,order_number,customername,status,subtotal,tax,total,date) VALUES (" + inno + "," + odrno + ",'" + name + "','"+ chk1 +"' ,"+ subtottal +","+ tax +","+total+",'"+date+"')", conn);
 top.ExecuteNonQuery();

除了日期剩余值存储成功但我如何存储日期??

我得到这样的日期 DateTime date = dateEdit1.DateTime;

帮帮我。

最佳答案

DATEreserved keyword对于 Microsoft Access。您应该将它与方括号一起使用,例如 [DATE]

而且您应该始终使用 parameterized queries .这种字符串连接对于 SQL Injection 是开放的攻击。

OleDbCommand top = new OleDbCommand(@"INSERT INTO invoice(invoice_number,order_number,customername,status,subtotal,tax,total,[date]) 
                                     VALUES (@invoice_number, @order_number, @customername, @status, @subtotal, @tax, @total, @date)", conn);
top.Parameters.AddWithValue("@invoice_number", inno);
top.Parameters.AddWithValue("@order_number", odrno);
top.Parameters.AddWithValue("@customername", name);
top.Parameters.AddWithValue("@status", chk1);
top.Parameters.AddWithValue("@subtotal", subtotal);
top.Parameters.AddWithValue("@tax", text);
top.Parameters.AddWithValue("@total", total);
top.Parameters.AddWithValue("@date", date);

作为一般建议,不要将保留关键字用于数据库中的标识符和对象名称。

关于c# - INSERT INTO 语句中的语法错误 c#.net Winforms Devexpress?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19788957/

相关文章:

c# - 从 PostCode 获取经度和纬度

c# - 从 Word 中删除不需要的分节符?

asp.net - 开源开发过程中如何混淆数据库认证信息?

ms-access - Access 2013 表达式中未定义函数 'Format'

c# - 为 WebClient 请求设置 User-Agent header

c# - 奇怪的 WPF 数据绑定(bind)行为

c# - 在什么情况下焦点位置可以与插入符位置不同?

c# - 以编程方式添加 DataGridView 列

ms-access - 我希望将特定的 Access 表字段导出到特定的 Excel 单元格。我的 vba 代码无法运行

c# - 创建与 AspNetUsers 表的关系