问题标签 [sqlbulkcopy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
26595 浏览

c# - 如何将gridview行添加到数据表?

我有一个gridview,它将包含一些'n'行......现在我想将gridview的所有行添加到一个数据表中,该数据表将用于批量复制操作......

我找到了这个http://www.codeproject.com/KB/aspnet/GridView_To_DataTable.aspx

但我希望我的 gridview 的所有列都添加到数据表 Grid http://img85.imageshack.us/img85/4044/gridp.jpg的数据行中

我想在提交时将gridview转换为数据表......任何建议......

编辑:

下面的答案有效,我也找到了答案......

0 投票
1 回答
1607 浏览

c# - Sqlbulkcopy 似乎对我不起作用

我创建了一个数据表并尝试通过 SqlBulkCopy 插入该数据表,但不知何故它似乎对我不起作用......

我得到了错误,

我的数据源是,

我的目标表看起来像这样,

替代文字 http://img231.imageshack.us/img231/5448/mytable.jpg

0 投票
3 回答
3123 浏览

sql-server - 如何将具有现有键的 DataTable 插入 SQL Server 表

我正在使用 VB.NET.. 我有一个名为“QUESTION”的 DataTable,包含 3 个字段:

  • QuestionNumber(唯一整数键)
  • 问题文本
  • 问题类型

在我的 SQL Server 数据库中,我创建了一个名为“QUESTION”的表,其中包含相同的字段。QuestionNumber 定义为整数唯一键,自增

现在,当我进行批量复制以将 DataTable 插入 SQL Server 时,数据库会从 DataTable 中覆盖我的 QuestionNumber 并生成新的(从 1 个增量 1 开始)。

我如何更改我的数据库设置,将原始 QuestionNumbers 复制到数据库中?

0 投票
1 回答
3579 浏览

sql-server - 如何使用 SQL 批量复制获取插入数据记录的标识

我有一个DataTable包含大约 100,000 条记录的 ADO.NET。在这个表中有一个 没有值的列,因为该列是在我的 SQL Server 数据库中xyID自动生成的。IDENTITY

我需要为其他进程检索生成的 ID。我正在寻找一种将其批量复制DataTable到 SQL Server 数据库中的方法,并在同一“步骤”DataTable中用生成的 ID“填充”我。

如何使用SqlBulkCopy该类检索插入到表中的记录的标识值?

0 投票
7 回答
30805 浏览

c# - SqlBulkCopy 和实体框架

我目前的项目由 3 个标准层组成:数据、业务和表示。我想使用数据实体来满足我所有的数据访问需求。该应用程序的部分功能是需要将平面文件中的所有数据复制到数据库中。该文件不是那么大,所以我可以使用 SqlBulkCopy。我找到了几篇关于 .NET 中使用 SqlBulkCopy 类的文章。但是,所有文章都使用 DataTables 来回移动数据。

有没有办法将数据实体与 SqlBulkCopy 一起使用,还是我必须使用 DataTables?

0 投票
1 回答
3838 浏览

c# - 在具有 ThreadPool 问题的多线程方案中使用 SqlBulkCopy

我正面临两难境地(!)。

在第一个场景中,我实现了一个解决方案,该解决方案使用 SQLBulkCopy 同步地将数据从一个数据库复制到另一个数据库,我完全没有问题。

现在,使用ThreadPool,我在异步场景中实现了相同的方法,每个表一个线程,一切正常,但是过了一段时间(通常是 1 小时,因为复制操作需要大约相同的时间),操作发送到ThreadPool停止执行。每个线程有一个不同的SQLBulkCopy使用一个不同的。SQLConnection

我已经看到了空闲线程的数量,并且它们在调用开始时都是空闲的。我有一个AutoResetEvent等待线程在再次启动之前完成它们的工作,以及一个保存活动线程计数器的信号量 FIFO。

在使用 SqlBulkCopy 时是否有一些我忘记或应该解决的问题?我感谢一些帮助,因为我的想法已经结束;)


->用法

//批量复制

#

信号

0 投票
7 回答
27669 浏览

c# - 没有主键时如何防止使用 SqlBulkCopy 插入重复记录

我每天收到一个包含数千条记录的 XML 文件,每条记录都是我需要存储在内部数据库中以用于报告和计费的业务交易。我的印象是每天的文件只包含唯一的记录,但发现我对唯一的定义与提供者的定义并不完全相同。

导入此数据的当前应用程序是 C#.Net 3.5 控制台应用程序,它使用 SqlBulkCopy 到 MS SQL Server 2008 数据库表中,其中列与 XML 记录的结构完全匹配。每条记录只有 100 多个字段,并且数据中没有自然键,或者更确切地说,我可以想出的字段作为复合键最终也必须允许空值。目前该表有多个索引,但没有主键。

基本上整行都需要是唯一的。如果一个字段不同,它就足够有效,可以插入。我查看了创建整行的 MD5 哈希,将其插入数据库并使用约束来防止 SqlBulkCopy 插入行,但我不知道如何将 MD5 哈希放入 BulkCopy 操作中,我不是确定如果任何一条记录失败,整个操作是否会失败并回滚,或者是否会继续。

该文件包含大量记录,在 XML 中逐行查询,在数据库中查询与所有字段匹配的记录,然后决定插入确实是我认为能够做到这一点的唯一方法。我只是希望不必完全重写应用程序,并且批量复制操作要快得多。

有谁知道在没有主键的情况下在防止重复行的同时使用 SqlBulkCopy 的方法?或者有什么不同的方法可以做到这一点的建议?

0 投票
1 回答
363 浏览

sql-server - 使用 DBCC CheckIdent 进行批量复制插入

我们的团队需要向我们的 SQL Server 2008 数据库中插入大量数据。我们正在寻找一个好的解决方案。现在我们想出了一个,但我对此表示怀疑,只是因为它感觉不对。所以我在这里问这是否是一个好的解决方案。额外的挑战是它是一个超过 4 台服务器的对等复制数据库!:)

假设我们有 100 万行要插入

  1. 开始交易
  2. 将表上的当前标识值增加 100 万
  3. 准备好包含 100 万行和正确 ID 的 DataSet/DataTable
  4. 将数据批量复制到数据库中
  5. 提交事务

这是一个好的解决方案吗,我们可能会遇到并发问题,交易量太大等等。

0 投票
7 回答
12398 浏览

c# - SqlBulkCopy 慢如糖蜜

我正在寻找通过 c# 加载批量数据的最快方法。我有这个脚本可以完成这项工作,但速度很慢。我阅读了 SqlBulkCopy 是最快的证词。
1000 条记录 2.5 秒。文件包含接近 5000 到 250k 的记录 有哪些可以减慢速度的东西?

表定义:

这是代码

0 投票
2 回答
2192 浏览

mysql - 用于批量传输的 MySqlDataAdapter 或 MySqlDataReader?

我正在使用 .NET 的 MySql 连接器将数据从 MySql 服务器复制到 SQL Server 2008。

有没有人使用以下之一体验过更好的性能?

  • DataAdapter 并以 500 个块调用 Fill 到 DataTable
  • DataReader.Read 在 500 的循环中读取到 DataTable

然后我使用 SqlBulkCopy 加载 500 个 DataTable 行,然后继续循环,直到 MySql 记录集完全传输。

我主要关心的是使用合理数量的内存并在短时间内完成。

任何帮助,将不胜感激!