如何将数据表作为参数发送到数据库中的存储过程

时间:2009-02-17 13:37:57

标签: database ado.net

基本上我想在“datatable1”上做一个内连接,它在网络服务器缓存上,存储在数据库中的另一个“datatable2”上。

我有2种方法可以做到这一点 1.我可以将“datatable2”带到webserver缓存并编写连接逻辑。然而,这将是非常昂贵的,并被排除在外。 2.将“datatable1”发送到数据库并在那里进行内部联接,并将结果返回给Web服务器。

所以我需要将此datatable1作为参数发送到存储过程。我想避免在这个表中循环,因为这个表可能非常大。

3 个答案:

答案 0 :(得分:3)

我认为您最好的选择是将第二个数据表查询到原始数据表的同一数据集中,然后在数据集中加入。

检查接受的答案:

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/f122d7f4-3b7d-4d93-bd0f-8bb57cd990a4/

答案 1 :(得分:0)

一种方法可能是将数据表序列化为xml并使用xml参数。加入xml文档非常容易,就好像它是一个表格一样。

答案 2 :(得分:0)

如果您使用的是SQL Server 2005+,我会使用OPENXML。使用text或xml参数将数据表传递给过程(使用DataTable.WriteXml),让过程解析文档,然后将其用作结果集以将其他表连接到。