如何在嵌套 for 循环中修复我的循环 2 数据集

How to fix my looping 2 datasets in nested for loops

我需要有关此嵌套 for 循环的帮助,以便在 html table 的每一列中显示 2 个数据库。

查看下面我尝试实现的代码

Protected Sub imgPaperDiary_Click(ByVal sender As Object, ByVal args As EventArgs) Handles imgPaperDiary.Click
    HttpContext.Current.Response.Clear()
    HttpContext.Current.Response.ContentType = "application/msword"
    HttpContext.Current.Response.ContentEncoding = System.Text.UnicodeEncoding.UTF8
    HttpContext.Current.Response.Charset = "utf-8"
    Response.AddHeader("content-disposition", "attachment; filename=paperdiary.doc")
    Response.Write("<html>")
    Response.Write("<head>")

    Response.Write("<div align='center'>")

    ' start building monday table
    Response.Write("<p><strong>Monday</strong></p>")
    Response.Write("<table style='width:100%' border='1' bordercolor='black' cellspacing='0'>")
    Response.Write("<tr>")
    Response.Write("<td width='50%'><strong>Morning</strong></td>")
    Response.Write("<td width='50%'><strong>Afternoon</strong></td>")
    Response.Write("</tr>")

    Dim mondaydsAM As DataSet
    mondaydsAM = Conn.dataSet("SELECT MWFSlotNo + ' ' + Firstname + ' ' + Surname AS Patient FROM tbl_Patients WHERE Days LIKE '%Mon%' AND Centre LIKE 'JCUH' AND Shift LIKE 'AM' ORDER BY CAST(MWFSlotNo AS int)", "Ruds")

    Dim mondaydsPM As DataSet
    mondaydsPM = Conn.dataSet("SELECT MWFSlotNo + ' ' + Firstname + ' ' + Surname AS Patient FROM tbl_Patients WHERE Days LIKE '%Mon%' AND Centre LIKE 'JCUH' AND Shift LIKE 'PM' ORDER BY CAST(MWFSlotNo AS int)", "Ruds")

    For Each dr As DataRow In mondaydsAM.Tables(0).Rows
        Response.Write("<tr>")
        Response.Write("<td width='50%'>" & dr.Item(0).ToString & "</td>")
        For Each dp As DataRow In mondaydsPM.Tables(0).Rows

            Response.Write("<td width='50%'>" & dp.Item(0).ToString & "</td>")

        Next

    Next
    Response.Write("</tr>")

    Response.Write("</table>")

    ' start building tuesday table

    Response.Write("</div>")
    Response.Write("</body>")
    Response.Write("</html>")
    HttpContext.Current.Response.End()
    HttpContext.Current.Response.Flush()

End Sub

宽度为 50%,我假设您希望 Am 在左边,Pm 在右边...

更改此部分

    For Each dr As DataRow In mondaydsAM.Tables(0).Rows
        Response.Write("<tr>")
        Response.Write("<td width='50%'>" & dr.Item(0).ToString & "</td>")
        For Each dp As DataRow In mondaydsPM.Tables(0).Rows

            Response.Write("<td width='50%'>" & dp.Item(0).ToString & "</td>")

        Next

    Next
    Response.Write("</tr>")

对此...

    Response.Write("<tr>")
    Response.Write("<td width='50%'>")
    For Each dr As DataRow In mondaydsAM.Tables(0).Rows
        Response.Write(dr.Item(0).ToString)
    Next
    Response.Write("</td>")

    Response.Write("<td width='50%'>")
    For Each dp As DataRow In mondaydsPM.Tables(0).Rows
        Response.Write(dp.Item(0).ToString)
    Next
    Response.Write("</td>")
    Response.Write("</tr>")

我已经成功破解了,请在下方编码

HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ContentType = "application/msword"
HttpContext.Current.Response.ContentEncoding = System.Text.UnicodeEncoding.UTF8
HttpContext.Current.Response.Charset = "utf-8"
Response.AddHeader("content-disposition", "attachment; filename=paperdiary.doc")
Response.Write("<html>")
Response.Write("<head>")

Response.Write("<div align='center'>")

' start building monday table
Response.Write("<p><strong>Monday</strong></p>")
Response.Write("<table style='width:100%' border='1' bordercolor='black' 
cellspacing='0'>")
Response.Write("<tr>")        
Response.Write("<th width='50%'><strong>Morning</strong></th>")
Response.Write("<th width='50%'><strong>Afternoon</strong></th>")
Response.Write("</tr>")

Dim mondaydsAM As Dataset
mondaydsAM = Conn.dataSet("SELECT MWFSlotNo + ' ' + Firstname + ' ' + Surname AS 
Patient FROM tbl_Patients WHERE Days LIKE '%Mon%' AND Centre = 'JCUH' AND Shift ='AM' 
ORDER BY CAST(MWFSlotNo AS int)", "Ruds")

Dim mondaydsPM As DataSet
mondaydsPM = Conn.dataSet("SELECT MWFSlotNo + ' ' + Firstname + ' ' + Surname AS 
Patient FROM tbl_Patients WHERE Days LIKE 'Mon%' AND Centre = 'JCUH' AND Shift = 'PM' 
ORDER BY CAST(MWFSlotNo AS int)", "Ruds")

Dim AMCount As Integer = mondaydsAM.Tables(0).Rows.Count
Dim PMCount As Integer = mondaydsPM.Tables(0).Rows.Count

    For i As Integer = 0 To 20
        Response.Write("<tr>")

        If i < AMCount Then


            ' If mondaydsAM.Tables(0).Rows(i).Item(0).ToString <> "" Then
            Response.Write("<td width='50%'>")
            Response.Write(mondaydsAM.Tables(0).Rows(i).Item(0).ToString)
            Response.Write("</td>")
        Else
            Response.Write("<td width='50%'>")
            Response.Write(i + 1)
            Response.Write("</td>")
        End If

        If i < PMCount Then
            'If mondaydsPM.Tables(0).Rows(i).Item(0).ToString <> "" Then

            Response.Write("<td width='50%'>")
            Response.Write(mondaydsPM.Tables(0).Rows(i).Item(0).ToString)
            Response.Write("</td>")
        Else
            Response.Write("<td width='50%'>")
            Response.Write(i + 1)
            Response.Write("</td>")
        End If

        Response.Write("</tr>")

    Next

    Response.Write("</table>")

 Response.Write("</div>")
 Response.Write("</body>")
 Response.Write("</html>")

 HttpContext.Current.Response.End()
 HttpContext.Current.Response.Flush()