0


0

データセットの次の行に移動してハイパーリンクに表示する方法

HTMLニュース記事をクライアントに送信するために使用されるメールアプリケーションを作成しています。 クライアントに表示する見出しを返すためにデータセットを使用しています。 データセットをループすると、最新のレコードが返されますが、最新の見出しリンクは表示されません。 そのため、出力されるHTMLは毎回同じ見出しになり、データセットの最初のレコードになります。 データセットの次のレコードに移動し、出力されたHTMLを取得して次の/正しい見出しを表示するにはどうすればよいですか?

これが私のコードのサンプルです。

  • 'データセットに入力するコード*

パブリック関数GetHeadline(ByVal ArticleID As Integer)As DataSet

    Try
        Dim objConn As SqlConnection = New SqlConnection()
        objConn.ConnectionString = myConnectionString
        objConn.Open()

        ds = New DataSet
        ds.Clear()

        Dim sqlCommand As String = "SomeSql"

        Dim objCmd As SqlCommand = New SqlCommand(sqlCommand, objConn)

        Dim dataAdapter As SqlDataAdapter = New SqlDataAdapter(objCmd)
        dataAdapter.Fill(ds)

        Catch ex As Exception
        MsgBox(ex.ToString)
        GetHeadline = Nothing
    End Try

    Return ds

End Function
  • 'リンクを設定するコード*

If GroupID = 4 Then
iLocation1 = HTMLbody.IndexOf("{!HeadlineID")

While iLocation1 > 0
 iLocation2 = HTMLbody.IndexOf("}", iLocation1)
 sHeadLineTag = HTMLbody.Substring(iLocation1 + 1, iLocation2 - iLocation1 - 1)
 dtReport = clsGlobal.globalReportCatalog.GetHeadline2()
 clsGlobal.globalReportCatalog.SetHeadlinePropertiesFromRow(dtReport.Rows(0))

 With clsGlobal.globalReportCatalog
  For i As Integer = 0 To dtReport.Rows.Count
   If i < dtReport.Rows.Count - 1 Then
    i = i + 1
   End If

   Dim ID As Integer = dtReport.Rows(i)("ArticleID")

   sHyperTag = "" & .HeadlineReportName & " - " & .HeadlineTitle & ""
   sHeadlineDescription = .HeadlineDescription

   HTMLbody = HTMLbody.Replace("{!Report.Description}", sHeadlineDescription)

  Next
 End With

1 Answer


0


なぜ必要なのかわかりません

  For i As Integer = 0 To dtReport.Rows.Count
   If i < dtReport.Rows.Count - 1 Then
    i = i + 1
   End If

使えませんか

Dim ID As Integer = dtReport.Rows(dtReport.Rows.Count - 1)("ArticleID")

または、忘れていたループの次の行に移動するはずでしたか?