在数据库中插入数据集记录

问题描述:

我需要将数据集记录(C#)插入MS Accessdatabase表中.我需要批量插入记录.

I need to insert the dataset records(C#) into the MS Accessdatabase table. I need to do the bulk insertion of records.

如何在C#中做到这一点

How can I do this in C#

对于此类任务,请考虑使用数据适配器抽象.对于Microsoft Access数据库,可以使用 OleDbDataAdapter 实现,如下例所示:

For this sort of task, consider using the data adapter abstraction. With an Microsoft Access database, you can use the OleDbDataAdapter implementation as shown in the example below:

// Prerequisite: The data to be inserted is available in a DataTable/DataSet.
var data = new DataTable();
data.Columns.Add("CompanyName", typeof(string));
data.Columns.Add("Phone", typeof(string));
data.Rows.Add("Foo", "12345678");
data.Rows.Add("Bar", "87654321");

// Now, open a database connection using the Microsoft.Jet.OLEDB provider.
// The "using" statement ensures that the connection is closed no matter what.
using (var connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=Northwind.mdb"))
{
    connection.Open();

    // Create an OleDbDataAdapter and provide it with an INSERT command.
    var adapter = new OleDbDataAdapter();
    adapter.InsertCommand = new OleDbCommand("INSERT INTO Shippers (CompanyName, Phone) VALUES (@CompanyName , @Phone)", connection);
    adapter.InsertCommand.Parameters.Add("CompanyName", OleDbType.VarChar, 40, "CompanyName");
    adapter.InsertCommand.Parameters.Add("Phone", OleDbType.VarChar, 24, "Phone");

    // Hit the big red button!
    adapter.Update(data);
}

您也可以针对其他品牌的数据库引擎执行相同的操作,方法是将 OleDbCommand OleDbDataAdapter OleDbConnection 替换为适合您的实现数据库引擎.对于Microsoft SQL Server,请查找带有 Sql 前缀的类,例如. SqlCommand

You can do the same against other brands of database engines as well by replacing OleDbCommand, OleDbDataAdapter and OleDbConnection with the appropriate implementations for your database engine. For Microsoft SQL Server, look for classes prefixed with Sql, eg. SqlCommand.