C# 仅向ms access添加一次Datatable(多行),无需循环C
我有一个数据表,它有多条记录。我想在不使用循环的情况下将此数据表插入ms access表 我想将多行/记录作为一个整体插入ms access数据库。我不想逐个插入记录 将数据从excel工作表加载到datatable。代码如下:C# 仅向ms access添加一次Datatable(多行),无需循环C,c#,database,ms-access,datatable,oledbdataadapter,C#,Database,Ms Access,Datatable,Oledbdataadapter,我有一个数据表,它有多条记录。我想在不使用循环的情况下将此数据表插入ms access表 我想将多行/记录作为一个整体插入ms access数据库。我不想逐个插入记录 将数据从excel工作表加载到datatable。代码如下: using (OleDbConnection connExcel = new OleDbConnection(DatabaseObjects.ConnectionStringExcel)) { string queryExcel
using (OleDbConnection connExcel = new OleDbConnection(DatabaseObjects.ConnectionStringExcel))
{
string queryExcel = "select * from [" + sheetName + "$]";
using (OleDbCommand commandExcel = new OleDbCommand(queryExcel, connExcel))
{
connExcel.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = commandExcel;
adapter.Fill(dtSheetData);
}
}
这回答了你的问题吗?给定链接适用于SQL-Server。我认为这个概念是相同的,但我读过一些讨论,指出Access不可能。数据源和from表的填充是否来自同一数据库?如果是,则可以使用带有select的追加查询insert查询。如果表源不是来自同一数据库,或者您是从不同的数据源创建表的?然后你必须一行一行地循环。access UI能够同时在两个不同的数据源之间操作sql,但.net不能。但是,您没有提到源表原点吗?如果这是一个ODBC数据库,那么您可以让JET/ACE为您执行此操作,但必须绕过oleDB并直接使用JET/ACE dao对象模型。@June7的概念是相同的,但我们在Access中是如何做到的。?
using (OleDbConnection connExcel = new OleDbConnection(DatabaseObjects.ConnectionStringExcel))
{
string queryExcel = "select * from [" + sheetName + "$]";
using (OleDbCommand commandExcel = new OleDbCommand(queryExcel, connExcel))
{
connExcel.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = commandExcel;
adapter.Fill(dtSheetData);
}
}