在C#里如何传多个datatable到SQL的存储过程里进行插入操作呢?

netang 2009-07-22 10:48:58
比如我要保存2个表,A表1个记录,B表2个记录,其中B表包含A表外键。如果按照普通的情况,需要打开三次库,依次插入。这样就造成资源浪费,并且无法使用事务对数据一致性进行保护。可不可以将table直接抛到SQL里。直接在数据库里进行分解插入呢?请高手帮忙,十分感谢。
...全文
147 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq406045381 2011-07-21
  • 打赏
  • 举报
回复
我也遇到了,没人解决吗?
zypts 2010-09-20
  • 打赏
  • 举报
回复
能解决吗
zhangming64432 2010-07-01
  • 打赏
  • 举报
回复
有谁能解决楼主的这个问题吗?我也遇到了。
netang 2009-07-23
  • 打赏
  • 举报
回复
我已经用传xml参数的方法解决了该问题,谢谢大家的帮助
netang 2009-07-22
  • 打赏
  • 举报
回复
C#里的datatable ,在sql里对应的数据表叫什么呢?我需要知道在SQL里该如何循环这个数据表啊
--小F-- 2009-07-22
  • 打赏
  • 举报
回复
用N次循环来做 不过感觉效率不高
幸运的意外 2009-07-22
  • 打赏
  • 举报
回复
如果两个表建立了关系,那么可以直接在C#代码里用更新语句一次更新多个表的。如果想用存储过程,那么实现起来很难用事务控制。只能逐次循环两个表里的纪录,循环插入。
xiequan2 2009-07-22
  • 打赏
  • 举报
回复
@@Identity把第一次得到的值保存在一个变量中,多次insert的时候都是第一个@@identity的值
jwdream2008 2009-07-22
  • 打赏
  • 举报
回复
2.如何对一个表进行多记录插入?
使用循环语句,循环插入!
netang 2009-07-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiequan2 的回复:]
SQL code用@@identity得到A表的主键set xact_abortonbegintraninsertinto Avalues (...)insertinto Bvalues(@@Identity,...)committran
[/Quote]
谢谢,那B表是要插入多条记录的。这个操作会有些问题吧
netang 2009-07-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 roy_88 的回复:]
確定三個庫在同一台機時
可用把存儲過程實現,程序調用傳一次參數就行了
[/Quote]
谢谢你的答案,可能是我的问题问的不好。在这里再说明一下:
1.从C#里如何传入SQL
2.如何对一个表进行多记录插入
xiequan2 2009-07-22
  • 打赏
  • 举报
回复
用@@identity得到A表的主键
set xact_abort on
begin tran
insert into A values (...)
insert into B values(@@Identity,...)
commit tran
中国风 2009-07-22
  • 打赏
  • 举报
回复
確定三個庫在同一台機時
可用把存儲過程實現,程序調用傳一次參數就行了

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧