【发布时间】:2013-01-05 00:21:57
【问题描述】:
这是我的DataTable 的样子(2 列:Name 和 Code):
Name Code
name1 code1
name2 code2
name3 code3
我想将 DataTable 插入到一个名为 MyTable 的现有表中,该表有一个主键和这两列。
我真的不知道我应该如何开始编写我的存储过程,有没有办法将DataTable 或类似的东西作为参数发送?
谢谢。
【问题讨论】:
-
您使用的是什么 DMBS?什么版本?
-
你的核心问题在哪里?你知道如何创建一个带参数并插入新记录的 sp 吗?如果是这样,只需使用
DataAdapter并使用CommandType=CommandType.StoredProcedure和适当的参数创建它的InsertCommand。那么它就像DataAdapter.Update(DataTable)一样简单。 (或使用 GarethD 提到的表值参数,here 是一个有用的链接) -
@PilgerstorferFranz:尽管
SqlBulkCopy提供了一种将数据批量复制到 sql-server 的非常有效的方法,但这并不是 OP 所要求的。他想使用存储过程在DataTable中插入记录。SqlBulkCopy有它的缺点。 -
IMO idish 要求提供一种解决方案,将完整的数据表插入到具有存储过程的数据库表中。在评论中引用另一种可能的解决方案是否被认为是不好的风格,甚至是不礼貌的(当然这不是我的意图!)?
标签: c# sql sql-server-2008 stored-procedures datatable