Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将数据成功保存到access中?_C#_Ms Access_Ms Access 2010 - Fatal编程技术网

C# 如何将数据成功保存到access中?

C# 如何将数据成功保存到access中?,c#,ms-access,ms-access-2010,C#,Ms Access,Ms Access 2010,如何使此查询正常工作?我无法将任何数据保存到数据库,不断出现错误:“INSERT INTO语句中的语法错误” 数据类型是我的问题,谢谢大家 尝试不使用命名参数: ad.InsertCommand = new OleDbCommand("INSERT INTO SetUp_Track (Operat, Maching, Last_Good_Time, First_Good_Time, Post_Number, Created) values (?, ?, ?, ?, ?, ?)", con);

如何使此查询正常工作?我无法将任何数据保存到数据库,不断出现错误:“INSERT INTO语句中的语法错误”


数据类型是我的问题,谢谢大家

尝试不使用命名参数:

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

.parameters.AddWithValue中的所有参数均以字符串类型发送

检查所有这些参数是否也在db中定义为字符串类型

例如,如果Post_Number在db中为整数,则应将字符串转换为整数,然后使用.Parameters.AddWithValue

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

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

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

INSERT INTO SetUp_Track
values(@Operat, @Maching, @Last_Good_Time,
@First_Good_Time, @Post_Number, @Created
                                        ^here
始终首先在数据库管理器中尝试您的命令。但更重要的是,
OleDbCommand
不接受命名参数

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

从CustomerID=?的客户中选择*

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


还可用于处理您的
OleDbConnection
OleDbCommand

该页面经常被引用。不幸的是,当它说“必须使用问号(?)占位符”(我的重点)时,这是误导。它真的应该说“应该使用问号(?)占位符”。
占位符不是绝对要求。命名参数确实有效,但名称无关;重要的仍然是参数在CommandText中的位置和添加顺序。(这就是为什么我认为应该使用
,以防止人们产生错误的想法。)@GordThompson是的,你完全正确。使用
只是参数化
OleDbCommand
的常用方法。名字完全被忽略了。唯一的问题是他们的订单。谢谢你们,伙计们,我发现我有几个括号忘了合上;但是,我仍然得到上述错误。@HGtez您尝试过我们的解决方案吗?!老实说,我不确定我是否正确地将数据从我的表单传递到数据库,我已经附加了我正在使用的数据库。谢谢查看此链接以获取日期时间参数:()感谢您帮助了很多伟大的工作!表设置跟踪是否只包括问题中提到的6个字段?这些字段加上数据库上设置为自动编号的ID,我担心这是最后一次好的时间&第一次好的时间,我不确定是否正确地将数据类型传递给数据库。