如何使用C#在MySQL中将数据表的多行同时插入数据库的表中
string connectionString = GetConnectionString();
using(var bulkCopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity)) {
foreach(DataColumn col in dataTable.Columns) {
bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
}
bulkCopy.BulkCopyTimeout = 600;
bulkCopy.DestinationTableName = destinationTableName;
bulkCopy.WriteToServer(dataTable);
}
我尝试过此操作,但用户'testuser
'的错误登录失败。这是数据库凭据
SqlBulkCopy
用于Microsoft SQL Server,并且Oracle的MySQL Connector / NET没有任何批量复制功能。 MySqlConnector是.NET的替代MySQL驱动程序,根据MySqlBulkCopy
,它确实支持最新Beta版本的批量复制(在this documentation中)。
您首先需要卸载MySql.Data,然后安装MySqlConnector。它使用相同的类名,因此应该是嵌入式升级。
string connectionString = GetConnectionString();
using (var connection = new MySqlConnection(connectionString))
{
await connection.OpenAsync();
using (var bulkCopy = new MySqlBulkCopy(connection)
{
// ColumnMappings isn't current supported, but they will be inferred automatically
bulkCopy.DestinationTableName = destinationTableName;
await bulkCopy.WriteToServerAsync(dataTable);
}
}