【问题标题】:How to save successfully data into access?如何成功将数据保存到访问中?
【发布时间】:2014-11-23 12:43:20
【问题描述】:

我怎样才能让这个查询正常工作?我无法将任何数据保存到数据库中,不断出现错误:“INSERT INTO 语句中的语法错误”

this helped a lot too

数据类型是我的问题,谢谢你们!

【问题讨论】:

  • SetUp_Track 是否只包含问题中提到的这 6 个字段?
  • 这些是唯一的字段加上数据库上设置为 AutoNumber 的 ID,我担心这是 Last_Good_Time 和 First_Good_Time 我不确定我是否将数据类型正确传递给 DB。跨度>

标签: c# ms-access ms-access-2010


【解决方案1】:

VALUES 子句应该是括在括号中的项目列表,()。你的省略了结束)

【讨论】:

    【解决方案2】:

    您真正的问题是忘记在VALUES 部分的末尾使用)

    INSERT INTO SetUp_Track
    values(@Operat, @Maching, @Last_Good_Time,
    @First_Good_Time, @Post_Number, @Created
                                            ^here
    

    始终首先在数据库管理器中尝试您的命令。但更重要的是,OleDbCommand 不接受命名参数。

    来自OleDbCommand.Parameters property

    OLE DB .NET 提供程序不支持传递命名参数 SQL 语句或存储过程的参数 当 CommandType 设置为 Text 时的 OleDbCommand。在这种情况下, 应使用问号 (?) 占位符 must。例如:

    SELECT * FROM Customers WHERE CustomerID = ?

    因此,OleDbParameter 对象添加到 OleDbParameterCollection 必须直接对应的位置 命令文本中参数的问号占位符。

    还可以使用using statement 来处理您的OleDbConnectionOleDbCommand

    【讨论】:

    • 该页面被大量引用。不幸的是,当它说“必须使用问号 (?) 占位符 ”时会产生误导(强调我的)。它确实应该说“应该使用问号 (?) 占位符 ”。 ? 占位符不是绝对要求。命名参数 do 有效,但名称无关;重要的是 CommandText 中参数的 position 和添加它们的 order。 (这就是为什么我认为应该使用? ,以防止人们产生错误的想法。)
    • @GordThompson 是的,你完全正确。使用? 只是OleDbCommand 参数化的常用方法。名字完全被忽略了。唯一的问题是他们的命令。
    【解决方案3】:

    尽量不要使用命名参数:

    ad.InsertCommand = new OleDbCommand("INSERT INTO SetUp_Track (Operat, Maching, Last_Good_Time, First_Good_Time, Post_Number, Created) values (?, ?, ?, ?, ?, ?)", con);
    

    还有,

    .Parameters.AddWithValue 中的所有参数都以 String 类型发送,

    检查所有这些参数是否也在db中定义为String类型,

    例如,如果 Post_Number 在 db 中是 Integer,那么您应该将 String 转换为 Integer,然后使用 .Parameters.AddWithValue

    ad.InsertCommand.Parameters.AddWithValue("@Post_Number", Convert.ToInt32(Post_NumberTxtbx.Text));
    

    【讨论】:

    • 谢谢你们,我发现我有几个括号我忘了关闭;但是,我仍然收到上述错误。
    • @HGtez 你试过我们的解决方案了吗?!
    • 老实说,我不确定我是否将数据从我的表单正确传递到数据库,我已经附加了我正在使用的数据库。谢谢
    • 查看此链接以获取 DateTime 参数:(stackoverflow.com/questions/6552262/…)
    • 感谢您帮助了很多伟大的工作!
    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 2013-02-17
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多