将ASP.NET数据集连接到数据库表

时间:2011-05-11 14:10:28

标签: asp.net sql-server database join dataset

我从Web服务获取一个审核项列表,该列表指示应该从我的数据库输出什么。

webservice将返回包含以下列

的数据集
[local_item_id] | [remote_item_transaction_id] | [remote_item_type]

本地REVIEWS数据库表看起来像这样

[id] | [title] | [review_description] | [created_date] | [rating]

我需要将上面的数据放到存储过程中并使用像[id] = [local_item_id]这样的表连接表,这样我就得到一个像下面这样的表输出到ASP.NET转发器......

[id] | [remote_item_transaction_id] | [remote_item_type] | [title] | [review_description] | [created_date] | [rating]

我认为最直接的方法是以某种方式将数据集传递给存储过程,然后将其解析为临时表,然后我可以将其加入到我的REVIEWS表中。

然后,每个转发器项目将输出如下链接,其中交易ID将报告回报告服务器。

<asp:Repeater ID="reviewItemsRepeater" runat="server">
<ItemTemplate>
<div><asp:HyperLink ID="MyHyperLink" runat="server" NavigateUrl='<%#"~/showreview.aspx?reviewid="+Eval("id").ToString()+"&trans_id="+Eval("remote_item_transaction_id").ToString()+"&trans_type="+Eval("remote_item_type").ToString()%>' Text='<%#Eval("title")%>'>

*注意:每个远程项的transactionID对于每个webservice调用都是唯一的,因此[remote_item_transaction_id]&amp; [remote_item_type]无法在本地存储在评论表中。*

对此的任何指示都会非常有帮助。 感谢

2 个答案:

答案 0 :(得分:2)

如果您使用的是SQL Server 2008或更高版本,请尝试使用表值参数:

http://www.codeproject.com/KB/cs/CSharpAndTableValueParams.aspx

答案 1 :(得分:0)

您可以批量插入临时表,然后对其进行常规连接。如果您需要针对它执行多个查询,那么这可能会表现最佳。

如果REVIEWS中的项目数量不是太大,您可以将其查询到数据集中并使用其中的关系来过滤数据。