首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在插入Server之前,将VB.NET DataTable与Server表连接起来,然后将结果插入Server表

在插入Server之前,将VB.NET DataTable与Server表连接起来,然后将结果插入Server表
EN

Stack Overflow用户
提问于 2020-06-04 10:34:20
回答 2查看 91关注 0票数 0

我希望将数据从VB.NET数据表传输到Server。

但是,在将数据传输到Server主表之前,我希望使用另一个Server表中的现有数据(如左联接)处理这些数据,然后将结果作为实际数据插入主Server表。

VB.NET数据表大约有2000行。

我想用“for循环”在VB.NET中使用insert SQL语句来执行每条记录,但是有两个缺点。

  1. 在没有必要的连接过程的情况下将记录插入到Server表中,而对于客户端应用程序来说,用于2000+记录的
  2. 'For循环‘则不是很好。

为了避免“for循环”,有一个SqlBulkCopy选项,但是它在没有所需的数据处理的情况下将VB.NET数据表插入Server中。

再次解释需求:我想将VB.NET数据表与Server中的某个表连接起来,这个结果需要插入到Server的主表中。

请指点。

EN

回答 2

Stack Overflow用户

发布于 2020-06-04 11:15:41

您可以将DataTable作为表值参数传递给Server.在这里您可以找到更多信息:

https://khalidabuhakmeh.com/passing-table-valued-parameters-from-dotnet-to-sql-server

票数 0
EN

Stack Overflow用户

发布于 2020-06-04 13:19:12

@BennoDual说了些什么,但更详细地说:

在DataTable中有一组数据( VB.Net )。您希望将数据集中的数据以某种方式基于存储在SQL表中的第二组数据加载到SQL中。基于此,推测:

  • 您不希望将第二组数据加载到VB.Net
  • 中,您不希望更改第一个数据集,因为它存储在VB.Net

中。

一种方法是将第二组数据从SQL临时加载到VB.Net中的第二组,用修改后的数据版本构建临时的第三组数据,并将其加载到SQL中。听起来我工作太多了。一种更以SQL为中心的方法是:

  • 在SQL
  • 中创建存储过程--过程有一个参数,其中参数是表值参数TVP
  • (这要求在创建过程之前创建TVP。这与如何创建存储过程一起在这个answer.)
  • Call的范围之外--这个过程来自VB.Net,通过TVP parameter
  • Within传入第一组数据--您现在在TVP中有第一组数据,第二组数据在表
  • 中随时可用--然后可以编写一个INSERT... SELECT...语句,根据TVP和第二个表之间的连接将行插入到目标表中。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62192554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档