0

データの最初の行のみを返し、それを素敵なテーブルに配置する次の関数があります。この分野での私の知識は、複数の行を返すテーブルを作成する方法がわからないという点で制限されています。これを変更して、行数に関係なくすべての行を返す方法を教えてください。私のsqlselectステートメントは0行または多くの行を返す可能性があります。

ありがとう:

<System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()> _
    Public Shared Function GetDynamicContent(contextKey As String) As String
        Dim constr As String = "Data Source=my data source"
        Dim query As String = "SELECT * FROM Details WHERE ItemID = " & contextKey

        Dim da As New SqlDataAdapter(query, constr)
        Dim table As New DataTable()

        da.Fill(table)

        Dim b As New StringBuilder()

        b.Append("<table style='background-color:#f3f3f3; border: #336699 3px solid; ")
        b.Append("width:350px; font-size:10pt; font-family:Verdana;' cellspacing='0' cellpadding='3'>")

        b.Append("<tr><td colspan='3' style='background-color:#336699; color:white;'>")
        b.Append("<b>Budget Item Details</b>")
        b.Append("</td></tr>")
        b.Append("<tr><td style='width:80px;'><b>Detail</b></td>")
        b.Append("<td style='width:80px;'><b>Amount</b></td>")
        b.Append("<td><b>Date</b></td></tr>")

        b.Append("<tr>")
        b.Append("<td>$" & table.Rows(0)("Detail").ToString() & "</td>")
        b.Append("<td>" & table.Rows(0)("Amount").ToString() & "</td>")
        b.Append("<td>" & table.Rows(0)("DetailDate").ToString() & "</td>")
        b.Append("</tr>")

        b.Append("</table>")

        Return b.ToString()
    End Function
4

1 に答える 1

1

これを試して。FOR行を作成するにはループが必要です。

Public Shared Function GetDynamicContent(contextKey As String) As String
  Dim constr As String = "Data Source=my data source"
  Dim query As String = "SELECT * FROM Details WHERE ItemID = " & contextKey
  Dim da As New SqlDataAdapter(query, constr)
  Dim table As New DataTable()
  da.Fill(table)
  Dim b As New StringBuilder()
  b.Append("<table style='background-color:#f3f3f3; border: #336699 3px solid; ")
  b.Append("width:350px; font-size:10pt; font-family:Verdana;' cellspacing='0' cellpadding='3'>")
  b.Append("<table style='background-color:#f3f3f3; border: #336699 3px solid; ")
  b.Append("width:350px; font-size:10pt; font-family:Verdana;' cellspacing='0' cellpadding='3'>")
  b.Append("<tr><td colspan='3' style='background-color:#336699; color:white;'>")
  b.Append("<b>Budget Item Details</b>")
  b.Append("</td></tr>")
  b.Append("<tr><td style='width:80px;'><b>Detail</b></td>")
  b.Append("<td style='width:80px;'><b>Amount</b></td>")
  b.Append("<td><b>Date</b></td></tr>")
  For i As Integer = 0 To table.Rows.Count-1
    b.Append("<tr>")
    b.Append("<td>$" & table.Rows(i).Cell("Detail").ToString() & "</td>")
    b.Append("<td>" & table.Rows(i).Cell("Amount").ToString() & "</td>")
    b.Append("<td>" & table.Rows(i).Cell("DetailDate").ToString() & "</td>")
    b.Append("</tr>")
  Next
  b.Append("</table>")
  Return b.ToString()
End Function
于 2012-05-17T00:30:40.440 に答える