0

この質問は、すぐに解決された以前の質問のフォローアップです。前の質問はここにあります: Selecting TOP 4 records from multiple SQL Server tables. vb.net の使用

日付順に並べられた複数の SQL テーブルから上位 4 行を選択しました。そのデータをラベルに配置するにはどうすればよいでしょうか。合計 16 項目 (4 列、4 行) があるはずです。ただし、sqldatareader を使用しようとすると、アイテム 0 ~ 3 しか取得できず、それ以上のものは配列の外にあります。この場合、IF ステートメントを使用すべきではありませんか? ご協力いただきありがとうございます。このサイトは素晴らしいです。

以前にリンクされた質問に基づいて新しく形成されたselectステートメントに加えて、ここに私が持っているものがあります:

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

Readを4回呼び出した場合はどうなりますか。

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 に答える