2012-11-22 41 views
0

在我的其他問題之前,我現在有另一個項目,我需要使用我的來解決/ /如果語句做while循環和if語句 - 在哪裏定位

strSQL = "exec sp_CoursesStartingSoon" 
    objConn = New SqlConnection(strConnection) 
    objConn.Open() 
    objCmd = New SqlCommand(strSQL, objConn) 
    rsData = objCmd.ExecuteReader(0) 

    While rsData.Read() 

     If (rsData("subject") = "F23") Then 

      html += "<h1>Access to HE</h1>" 
      html += "<p>" & rsData("name") & "</p>" 
      html += "<p>" & rsData("level") & "</p>" 

     ElseIf (rsData("subject") = "F06") Then 

      html += "<h1>Art and Design</h1>" 
      html += "<p>" & rsData("name") & "</p>" 
      html += "<p>" & rsData("level") & "</p>" 

     End If 

    End While 

現在我的問題是,我需要的H1標題只出現一次,目前他們是雖然循環,這樣的循環在每一行內。任何人都可以提供關於如何做到這一點的建議?

謝謝!

+0

使用StringBuilder讓您的數據更快。如果你稍微解釋一下你想要達到的目標,那將會很好。如果你只想要發生一次事情,用布爾值來記住你做到了。如果您希望每個名稱都發生一次,請使用HashTable記錄已經處理完所有名稱的名稱。 – GameAlchemist

回答

1

假設:

  • 存儲過程返回由subject
  • 訂購的物品和你有主題= F23並受= F06
  • 許多項目,你需要建立的名單按學科分組相同的項目

    Dim titleF23 as String = "<h1>Access to HE</h1>" 
    Dim titleF06 as String = "<h1>Art and Design</h1>" 
    
    While rsData.Read() 
    
        If (rsData("subject") = "F23") Then 
         if titleF23.Length > 0 then 
          html += titleF23 
          titleF23 = "" 
         end if 
         html += "<p>" & rsData("name") & "</p>" 
         html += "<p>" & rsData("level") & "</p>" 
    
        ElseIf (rsData("subject") = "F06") Then 
         if titleF06.Length > 0 then 
          html += titleF06 
          titleF06 = "" 
         end if 
         html += "<p>" & rsData("name") & "</p>" 
         html += "<p>" & rsData("level") & "</p>" 
        End If 
    
    End While 
    
+0

我正在考慮這些方面,但並沒有完全理解它。非常感謝您的幫助和大力幫助。 – PipBoy

0

您可以創建另一個如果爲h1標題,以便如果您打印一次後不再打印。它的成本更高一點,但這將是一個快速解決方案。