none
请问如何向sqlserver2005传递一个datatable,并能将其转换成存储过程中的表变量? RRS feed

  • 问题

  • 请问如何向sqlserver2005传递一个datatable,并能将其转换成存储过程中的表变量?可否给出一个例子。
    2009年10月15日 6:58

答案

  • DataTable是.NET的数据类型~不能直接传到SQL Server中
    Linq to SQL/Entities可以记录用户对从数据库中获取出来的实体的修改并提交到数据库~似乎适用于你的要求~不过采用这个技术以后可能会对你原有的应用程序结构设计有一定的影响~
    2009年10月19日 8:31
    版主
  • xml 也是可行的方式,DataTable 提供 WriteXML 来写XML, SQL 语句提供 OPENXML 语句来读取 XML 文件。
    知识改变命运,奋斗成就人生!
    2009年10月20日 1:30
    版主

全部回复

  • 你好!

    存储过程,函数不支持表变量类型的参数,你可以临时表或传入查询条件然后在存储过程中使用查询条件得到数据。

    知识改变命运,奋斗成就人生!
    2009年10月15日 9:52
    版主
  • 我想将内存中datatable中每一行的记录添加到一个表中,除了循环插入记录的方法之外,可否将该datatable传入sqlserver,再在存储过程中实现插入,我知道sql2008支持表变量,但在sql2005中有没有替代的办法,可否给出一个例子说明?
    2009年10月16日 0:15
  • 你好!

    SqlDataAdapter 提供了 Update 方法,可以一次性的将 DataTable 的数据修改更新到数据中, 详细的信息你可以参考 MSDN :http://msdn.microsoft.com/zh-tw/library/z1z2bkx2.aspx

    知识改变命运,奋斗成就人生!
    2009年10月16日 11:15
    版主
  • 我的目的是想将datatable的整个表传到sqlserver中去进行处理,不一定是datatable的表结构和sqlserver中的某个表的结构是相同的,我只想在sqlserver中处理datatable中的数据,而不想将datatable中的数据一行一行地处理,请问怎样实现呢?是否要用xml还是有其他办法?
    2009年10月16日 15:13
  • DataTable是.NET的数据类型~不能直接传到SQL Server中
    Linq to SQL/Entities可以记录用户对从数据库中获取出来的实体的修改并提交到数据库~似乎适用于你的要求~不过采用这个技术以后可能会对你原有的应用程序结构设计有一定的影响~
    2009年10月19日 8:31
    版主
  • xml 也是可行的方式,DataTable 提供 WriteXML 来写XML, SQL 语句提供 OPENXML 语句来读取 XML 文件。
    知识改变命运,奋斗成就人生!
    2009年10月20日 1:30
    版主