0

这个问题是我之前提出的一个问题的后续问题,这个问题很快就得到了解决。上一个问题可以在这里找到:Selecting TOP 4 records from multiple SQL Server tables。使用 vb.net

我从多个按日期排序的 SQL 表中选择了前 4 行。然后我将如何将这些数据放入标签中。总共应该有 16 个项目(4 列,4 行)。但是,如果我尝试使用 sqldatareader,我只会得到 0-3 项,而其他任何内容都在数组之外。在这种情况下我不应该使用 IF 语句吗?提前感谢您的任何帮助。这个网站很棒。

除了基于先前链接的问题新形成的选择语句之外,这是我所拥有的:

If dr2.Read Then

        slidelink1.Text = dr2.Item(0)
        slideanchor1.Text = dr2.Item(1)
        slidethumb1.Text = dr2.Item(2)
        slidedate1.Text = dr2.Item(3)
    End If

我一如既往地感谢帮助。不要犹豫,告诉我我是否离这里很远。我假设读者只显示最后一行数据,但我对这些东西很新鲜。

4

2 回答 2

2

如果您只调用了 4 次 Read 会怎样。

If dr2.Read Then
    slidelink1.Text = dr2.Item(0)
    slideanchor1.Text = dr2.Item(1)
    slidethumb1.Text = dr2.Item(2)
    slidedate1.Text = dr2.Item(3)
End If

If dr2.Read Then
    slidelink2.Text = dr2.Item(0)
    slideanchor2.Text = dr2.Item(1)
    slidethumb2.Text = dr2.Item(2)
    slidedate2.Text = dr2.Item(3)
End If

If dr2.Read Then
    slidelink3.Text = dr2.Item(0)
    slideanchor3.Text = dr2.Item(1)
    slidethumb3.Text = dr2.Item(2)
    slidedate3.Text = dr2.Item(3)
End If


If dr2.Read Then
    slidelink4.Text = dr2.Item(0)
    slideanchor4.Text = dr2.Item(1)
    slidethumb4.Text = dr2.Item(2)
    slidedate4.Text = dr2.Item(3)
End If

你也可以循环,但如果你总是知道结果中有 4 个,那么这样做可能会更容易。

于 2012-04-14T01:47:16.193 回答
2

尝试从数据绑定的角度考虑这一点:

<asp:Repeater runat="server" id="sideLinks">
    <ItemTemplate><tr><td><%# Eval(0)%><td><%#Eval(1)%><td><%#Eval(2)%><td><%#Eval(3)%></tr>
    </ItemTemplate>
</asp:Repeater>

进而:

sideLinks.DataSource = dr2
于 2012-04-14T01:52:15.710 回答