从 DataTable 批量插入到 SQLCE DataSource

2023-11-30

这是一个使用 SQL CE 作为数据源的 C# WPF 应用程序:

我有一个 DataTable(显示为 DataGrid)和一个 SQL CE DataSource。 我使用 DataAdapter、DataSet 和 DataTable 从 SQL CE 填充 DataTable。然后将我的 DataGrid 绑定到 DataTable。

我可以将行(>10,000)行添加到我的数据表中,并且可以在将所有更改一起传播到我的 Sql CE 数据源之前编辑数据。

我当前的方法是 DROP TABLE、CREATE TABLE 并通过强力将行重新插入到 SQLCE。 SQL CE 没有批量插入,并且我不想使用第三个库或 dll。性能很慢...

我正在寻找一种更快的“批量插入”方法,而不需要逐一删除、创建和插入行。

我读了一些有关 SqlCeResultSet 的内容,但找不到任何文档,想知道它与我想做的事情有什么关系。

[EDIT]
按照答案并检查这​​一点:
http://ruudvanderlinden.com/2010/10/13/bulk-insert-into-sql-ce-in-c/

我尝试使用该功能,但似乎不起作用。 下面是我的代码。 Footable 是我的数据库表,我有两列 - “id”和“FooName”。

Hashtable idHash = new Hashtable();
Hashtable fooNameHash = new Hashtable();
foreach(DataRow row in dt.Rows)
{
    idHash.Add("id",row["id"]);
    fooNameHash.Add("FooName",row["FooName"]);
}

List<Hashtable> colHashList = new List<Hashtable>();
colHashList.Add(idHash);
colHashList.Add(fooNameHash);

BulkInsertDatabase(colHashList, "FooTable");

它不起作用,但我在上面的代码中没有看到任何问题,所以希望有人能指出。

[编辑 - 第二次][答案]
最后我让代码可以工作(尽管性能值得怀疑):

List<Hashtable> colHashList = new List<Hashtable>();

Hashtable[] idHash = new Hashtable[dt.Rows.Count];
Hashtable[] fooNameHash = new Hashtable[dt.Rows.Count];

int i=0;
foreach(DataRow row in dt.Rows)
{
    idHash[i] = new Hashtable();
    idHash[i].Add("id", row["id"]);
    colHashList.Add(idHash[i]);

    fooNameHash[i] = new Hashtable();
    fooNameHash[i].Add("FooName", row["FooName"]);
    colHashList.Add(fooNameHash[i]);

    i++;
}

BulkInsertDatabase(colHashList, "FooTable");

您应该使用SqlCeResultSet 类

它允许在 SQL CE 数据库中批量导入我在 10 秒内导入了 100000 行 看着那(这example

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 DataTable 批量插入到 SQLCE DataSource 的相关文章

  • 双线性序列给出奇数结果

    我试图让我的表现技能 不存在 达到标准 但在将公式写入代码时遇到了问题 这是我试图将其引用为 转换 为代码的公式 考虑一个序列 u 其中 u 定义如下 号码u 0 1是第一个u 对于每个x in u then y 2 x 1 and z 3
  • 使用 C++ 拆分“[常规设置]”格式的节字符串

    我是 C 新手 我想读取包含部分和键值对的 ini 文件 根据部分 我想读取相应键的值 首先 我想阅读方括号内的部分 请帮忙 谢谢 对于真正的 INI 文件解析 我强烈建议iniparser库 http ndevilla free fr i
  • 操作/Lambda 表达式内存管理问题

    我将一个操作存储在局部变量中 然后在该局部变量超出范围后使用 使用前是否有被清理的危险 这是一个例子 public List GetMaps Action
  • 宏可以按参数数量重载吗?

    如何this https stackoverflow com q 9183993 153285工作 如何实现 C99 C 11 可变参数宏以仅根据为其提供多少个参数来扩展到不同的事物 编辑 请参阅末尾以获得现成的解决方案 要获得重载的宏 首
  • C++:将模板参数的模板类型成员添加为好友的正确语法?

    我有一个带有模板类型参数 tTRAIT 的类 我想加一个模板为好友type member aliastTRAIT 但我无法弄清楚语法 这可能吗 template
  • 在不使用 ncurses 的情况下用 C/C++ 编写“真正的”交互式终端程序,例如 vim、htop...

    不 我不想使用ncurses 因为我想了解如何 终端可以工作 并且我自己编程也很有趣 没有 必须是可移植的 它必须只能在基于 linux xterm 的终端仿真器上工作 我想做的是编写一个交互式终端应用程序 例如 htop 和 vim 我的
  • 如何使用boost库读取和写入.ini文件[重复]

    这个问题在这里已经有答案了 如何使用boost库读取和写入 或修改 ini文件 With Boost PropertyTree您可以读取并更新树 然后写入文件 请参阅load and save功能 看一下如何访问属性树中的数据 http w
  • 在 C++ 中使用表达式模板进行符号微分

    如何在 C 中使用表达式模板实现符号微分 一般来说 您需要一种表示符号的方法 即编码的表达式模板 例如3 x x 42 以及一个可以计算导数的元函数 希望您对 C 中的元编程足够熟悉 知道这意味着什么和需要什么 但可以给您一个想法 This
  • 读取STM32 MCU SPI数据寄存器的值

    有很多类似的问题 但似乎没有一个问题完全相同 我正在将 STML4 MCU 连接到 6 轴传感器 LSM6DS3 我已经成功地在 I2C 中实现了所有内容 但想要 SPI 的额外速度 和 DMA 如果我能让这些第一步工作起来的话 因此 第一
  • WinForms - 表单大小错误

    我们有以下代码 private void MainForm Shown object sender EventArgs e RepositionForm private void RepositionForm Rectangle rect
  • 是否有一种算法可以在线性时间内计算数组反转?

    我知道有多少倒转 en wikipedia org wiki Inversion 28discrete mathematics 29 in an n 元素数组可以在 O n log n 操作使用增强型归并排序 http www geeksf
  • C++:初始化静态字符串成员

    我在 C 中初始化静态字符串成员时遇到一些问题 我有几个类 每个类都包含几个表示 id 的静态字符串成员 当我通过调用静态函数初始化变量时 一切都很好 但是 当我想为一个变量分配另一个变量的值时 它仍然保留空字符串 这段代码有什么问题 st
  • Qt QML 数据模型似乎不适用于 C++

    我一直在使用中的示例http doc qt digia com 4 7 qdeclarativemodels html http doc qt digia com 4 7 qdeclarativemodels html这是 QML 声明性数
  • C++ 错误:从“char”到“const char*”的转换无效

    我对 C 完全陌生 我创建了这个函数 bool guessWord string compWord cout lt lt Guess a letter string userLetter cin gt gt userLetter for u
  • ASP.NET MVC 中 ModelState.AddModelError 中的关键参数有什么意义?

    我在我的控制器中添加了验证检查来修改ModelState如果验证失败 例如 private bool ValidateMoney string raw string name decimal min decimal max try var
  • 只读有运行时开销吗?

    出于某种原因 我一直认为readonly字段有与其相关的开销 我认为这是 CLR 跟踪是否存在readonly字段是否已初始化 这里的开销是一些额外的内存使用量 用于跟踪状态以及分配值时的检查 也许我这么认为是因为我不知道readonly字
  • 数组与映射的性能

    我必须循环一个大数组中的元素子集 其中每个元素都指向另一个元素 问题来自于检测大图中的连接组件 我的算法如下 1 考虑第一个元素 2 将下一个元素视为前一个元素所指向的元素 3 循环直到没有发现新元素 4 考虑1 3中尚未考虑的下一个元素
  • SQL参数化查询不显示结果

    我的 DataAcess 类中有以下函数 但它没有显示任何结果 我的代码如下 public List
  • 从 STL 列表中删除项目

    我想创建一个函数 如果符合特定条件 则将项目从一个 STL 列表移动到另一个列表 这段代码不是这样做的方法 迭代器很可能会被擦除 函数失效并导致问题 for std list
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所

随机推荐

  • Skybox OpenGL ES iPhone 和 iPad

    我需要创建一个虚拟旅游工具iOS 这是一个考古应用程序 用户可以在历史建筑内或参观考古发掘时打开它 不需要末日般的主观观点 只是一个天空盒 该应用程序将包含一个兴趣点 POI 列表 每个 POI 都有自己的天空盒 我想我可以使用OpenGL
  • BufferedImage 意外改变颜色

    我有以下代码 它创建灰度 BufferedImage 然后设置每个像素的随机颜色 import java awt image BufferedImage public class Main public static void main S
  • Android:在缩放后找到ImageView上的绝对点击位置(使用矩阵布局使用捏合缩放)

    我正在使用 Hello Android 第 3 版中的代码来实现捏合缩放功能 使用此功能后 捏合缩放工作正常 但缩放后我想获得图像视图上的绝对单击位置 这是我的代码 package org example touch import andr
  • Youtube上传api重复视频(获取正确的ID)

    当视频重复时 假设 v GgVH5fXXYSE 有没有一种方法可以使用重复的 id 找到 好 视频 应该有效的视频 的 videoid 所以用 GgVH5fXXYSE 我可以找到 eNqZgEgOfsw 谢谢 不幸的是 没有办法获取这些信息
  • 测试折叠上的 CV 和欠采样

    我对构建具有不平衡数据的 ML 分类器有点迷失 80 20 数据集有30列 目标是标签 我想预测主要课程 我正在尝试重现以下步骤 分割训练 测试数据 在列车组上执行 CV 仅在测试折叠上应用欠采样 在 CV 的帮助下选择模型后 对训练集进行
  • 如何在 XSLT 中进行分页

    我有以下 XSLT
  • Oracle 中将字符串日期转换为日期时间

    我怎样才能把这个字符串日期转换为oracle中的日期时间 2011 07 28T23 54 14Z 使用此代码会引发错误 TO DATE 2011 07 28T23 54 14Z YYYY MM DD HH24 MI SS 如何才能做到这一
  • 如何在 UserControl 中显示 ObservableCollection

    我是 WPF 新手 我发现了一些类似的问题 但不太清楚最后一部分 我有一个带有 ObservableCollection 的 ViewModel 其中包含错误消息 我想在表单上显示这些消息并允许用户选择和复制全部或部分消息 过去在 WinF
  • subprocess.Popen("echo $HOME"... 和 subprocess.Popen(["echo", "$HOME"] 之间有什么区别

    我无法得到它是 bash 相关的或 python 子进程 但结果是不同的 gt gt gt subprocess Popen echo HOME shell True stdout subprocess PIPE communicate b
  • 如何使用 JavaScript 或 HTML 将文件输入设置为空?

    在我正在开发的网站上 我有一个文件输入 用户可以从中上传文件 它使用 Ajax 不是真正的 将文件发送到绑定到 iframe 的 php 文件 我的问题是 Firefox 自动填充文件输入元素 有没有办法让用户可以选择单击提交按钮而不发送文
  • 复制绘图区域在 Powerpoint VBA 中无法正常工作

    我拼凑了以下代码 将图表的格式从一个图表复制到另一个图表 代码仍然很混乱 因为我试图想出引用图表的最佳方法 欢迎任何想法 我无法准确复制主要是绘图区域和辅助访问的格式和位置 一个页面上必须有两个图表 首先选择源 然后选择目标 目前来看 它们
  • 自动滚动 Cypress 行为导致下拉菜单在 Cypress 测试中关闭。有解决方法吗?

    Cypress 的自动滚动行为正在关闭我试图在其中选择元素的下拉列表 这会导致测试失败 因为找不到第一个下拉项 我添加的解决方法是添加第二个 click 键入输入后重新打开下拉菜单 cy get selector click force t
  • SymPy:如何根据其他表达式返回一个表达式?

    我还很陌生SymPy并提出一个可能是基本问题的问题 或者我可能只是误解了 SymPy 的使用方式 有没有办法创建一个不由原子表示而是由其他表达式组合表示的表达式 Example gt gt gt from sympy physics uni
  • 当放入结构中时,值的寿命不够长

    我正在尝试使用 Rust 中的 LLVM这个板条箱 我正在尝试创建一个代码生成器结构来为我保存上下文 模块和构建器 但是当我尝试编译时 我收到一条错误消息 c does not live long enough 我怎样才能编译它 为什么 c
  • 铸造容器 C++ [重复]

    这个问题在这里已经有答案了 可能的重复 是否可以将 Base 类型的 STL 容器转换为 Derived 类型 这应该是一个简单的问题 如果我有一个基类的容器 例如 STL 列表 是否可以将整个容器转换为子类类型 例如 A inherits
  • @Query 注释使用 like %?1%

    我想写一个这样的查询 Query select p from Product p where p name 1 or p desc like 1 但这给了我例外 org hibernate hql ast QuerySyntaxExcept
  • 这个方法如何运作?

    我经常遇到这种注册动作侦听器的方式 虽然我最近一直在使用这种方法 但我不明白这是如何以及为什么的 这是一个 submit new JButton submit submit addActionListener new ActionListe
  • 绑定到 ICollectionView 时模拟数据不显示

    如果我绑定我的ListBox到视图模型ObservableCollection或 XAML 资源CollectionViewSource 模拟数据在设计时显示 有时CollectionViewSource由于某些 XAML 更改而停止显示此
  • Eclipse 在没有互联网连接的 PC 上间歇性挂起

    我从 Eclipse 3 2 开始就遇到过这个问题 但在较新的版本中 这个问题出现得更频繁 每当我访问某些配置菜单项或 Eclipse 解析包含指向某个 Internet URL 的 xmlns 变量的 XML 文件时 Eclipse ID
  • 从 DataTable 批量插入到 SQLCE DataSource

    这是一个使用 SQL CE 作为数据源的 C WPF 应用程序 我有一个 DataTable 显示为 DataGrid 和一个 SQL CE DataSource 我使用 DataAdapter DataSet 和 DataTable 从