Как перейти к следующей строке в наборе данных и отобразить в гиперссылке - PullRequest
0 голосов
/ 24 августа 2010

Я пишу почтовое приложение, которое будет использоваться для отправки HTML-статей клиентам.Я использую набор данных, чтобы вернуть заголовки для отображения клиенту.Когда я перебираю набор данных, возвращается самая последняя запись, но последняя ссылка на заголовок не отображается.Таким образом, каждый раз выводимый HTML имеет один и тот же заголовок, который является первой записью в наборе данных.Как перейти к следующей записи в наборе данных и получить выведенный HTML-код для отображения следующего / правильного заголовка?

Вот пример моего кода:

'Кодзаполнить набор данных

Открытая функция GetHeadline (ByVal ArticleID As Integer) в качестве 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 = "<a href=""" & "http://www.myweb.com/somedirectory/Login.aspx" & .HeadlineMarketingLink & """>" & .HeadlineReportName & " - " & .HeadlineTitle & "</a>"
   sHeadlineDescription = .HeadlineDescription   

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

  Next
 End With

1 Ответ

0 голосов
/ 24 августа 2010

Не понимаю, зачем вам нужно

  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")

или в цикле, который вы забыли, должен был быть ряд movenext?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...