从 Access Table 复制记录到 Access Table

Copy Records From Access Table To Access Table

在 C# 中,我试图将记录从一个访问 table 插入到另一个访问 table,但我收到上述错误消息。是什么导致此错误(OleDbException:没有为一个或多个必需参数提供值)因为它是一个直接的 Select * 语句?

OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=P:\Source.mdb;");
connection.Open();
OleDbCommand command = new OleDbCommand("INSERT INTO [;DATABASE=V:\Destination.mdb;].[table1] SELECT * FROM table1 WHERE company = 2", connection);
command.ExecuteNonQuery();
connection.Close();

编辑 --- 插入语句出错

OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=P:\Source.mdb;");
connection.Open();
OleDbCommand command = new OleDbCommand("INSERT INTO [;DATABASE=V:\Destination.mdb;].[table1] (Name, Address, Phone, RepeatCustomer) SELECT Name, Address, Phone, RepeatCustomer FROM table1 WHERE company = 2", connection);
command.ExecuteNonQuery();
connection.Close();

这两个表是否相同?如果列顺序 and/or 类型不匹配,您将收到此错误。显式定义要修改的列是更好的形式:

INSERT INTO [;DATABASE=V:\Destination.mdb;].[table1] (col1,col2) SELECT col1,col2 FROM table1 WHERE company = 2

这样,顺序无关紧要,并且您不会尝试添加到不存在的列。

我在复制到同一个 table 时遇到了同样的问题。这个只有两个字段的示例对我有用:

INSERT INTO [Orders] (CUST, PART_NUMBE) SELECT CUST, PART_NUMBE FROM [orders]
WHERE [OrderNumber]= 23979