- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一段代码使用 DataReader 和 SqlBulkCopy 将数据从 excel 电子表格复制到 MSSQL 表。它工作正常,直到我在表上创建了一个主键,但现在它失败了。我首先删除 SQL 表的内容,然后再用 excel 中的数据填充它。
由于我只移动了少量数据,我想知道是否有比使用 BulkCopy 更好的方法来完成此操作?
更新:下面是相关代码,我收到的错误是: “无法将数据源中String类型的给定值转换为指定目标列的float类型。”
using (OleDbConnection connection = new OleDbConnection(excelConnectionString))
{
connection.Open();
OleDbCommand cmd = new OleDbCommand
("SELECT Name, Date, Amount FROM ExcelNamedRange", connection);
using (OleDbDataReader dr = cmd.ExecuteReader())
{
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.DestinationTableName = "SqlTable";
bulkCopy.WriteToServer(dr);
}
}
}
最佳答案
SqlBulkCopy 自动映射字段。但是由于您添加了主键,因此默认映射不再有效。
您必须设置 ColumnMapping 以明确告诉您的 SqlBulkCopy 对象如何映射字段。
对除主键之外的所有字段执行此操作(假设您在 PK 上使用身份)。
例如:
_bulkCopyEngine.ColumnMappings.Add("fieldname_from", "fieldname_to");
关于c# - Excel 到 SQL。 BulkCopy 的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5431735/
全部, 我有以下 BulkCopy 操作: // Convert the FlexGrid to a DataTable. DataTable currData = (DataTable)c1ErrF
我正在尝试将 DataTable 写入到 Sql Server 上的目标表中。 DataTable dt 只包含一列及其名为 Email。我的目标表包含 tpid、lastname、age、date
我写了一个例程来批量导入记录。它不起作用,我认为问题是我在这里没有任何等待,但我不知道如何或在哪里放置它。由于我项目的性质,我不想要方法是一个异步方法。我只是使用异步来通知更新。 public
我在使用 C# 的 asp.net 3.5 中使用 SQL Bulkcopy 时遇到字符串到日期的转换问题 我读取了一个大型 CSV 文件(带 CSV reader )。读取的字符串之一应加载到 SQ
我正在尝试使用 bulkCopy.WriteToServer() 将数据从我的远程 SQL Server Express 复制到我的本地 SQL Server Express,但是没有数据写入我的本地
我正在编写一个 Spring Boot 2 应用程序,我正在使用 SQL 批量复制功能在 SQL Server 2012 数据库中插入多条记录。每次我插入 ~700 行时,我都会泄漏 600 MB 我
我正在使用 SqlBulkCopy 将包含一百万条记录(每条记录大约有 10 列)的 datatable 的内容插入到数据库表中。当我更改批量大小属性 (bulkCopy.BatchSize) 时,我
更新基于已接受的答案: bool success = false; using (var bulkCopy = new SqlBulkCopy(connection)) //using! {
我有一段代码使用 DataReader 和 SqlBulkCopy 将数据从 excel 电子表格复制到 MSSQL 表。它工作正常,直到我在表上创建了一个主键,但现在它失败了。我首先删除 SQL 表
我想从 access .mdb 文件中将数据插入到 sqlserver 中,这是使用 OLEDB 执行数据插入 SQL BulkCopy 或 OPENDATASOURCE 的最快方法。 数据大约是 2
在我的 asp.net 页面中,我正在尝试...... 创建一个临时数据表并用数据填充它(这可行) 将列上的 ColumnMappings 批量复制到目标表 从临时数据表到目标表执行一次bulkCop
我有一个应用程序,通过它我使用 SqlBulkCopy 将批量记录插入到表中。我有一个触发器,它将添加到第一个表中的记录插入到另一个表中。 当我插入时,我在 C# 中编写了 SqlBulkCopyOp
我想将 datagridview 行插入到 sql server 表中......现在使用此代码将 DataGridView 中的行值插入表中: private DataTable GetDataTa
我正在尝试使用 List 更新表格.我创建了一个 EnumExtension 类并创建了一个将我的 Enumerable 转换为 DataTable 的方法: public static DataTa
我有一个表 (A),其中包含一个名为 confirmation_number 的列。它被定义为 varchar2(30) 并包含类似于 SMITERI-2012-02-31-4567 的内容。 我有另
有没有办法将内存数据表(vb.net)及其列(模式)复制到 sql server 新表或现有表中?如果一列已添加到临时表中,是否可以通过 BulkCopy 将新列添加到现有 sql server 表中
我是一名优秀的程序员,十分优秀!