I figured this out by creating arrays outside of the loop, like so:
Dim TooltipArray() As String = {"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""}
Dim TotalHoursArray() As Integer = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
Using con As New SqlConnection(cnSQLLive)
con.Open()
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "spJobForecastingGetEmployeeProjectBreakdown"
cmd.Connection = con
cmd.Parameters.Add("@alias", SqlDbType.VarChar)
cmd.Parameters.Add("@startdate", SqlDbType.DateTime)
cmd.Parameters("@alias").Value = e.Row.Cells(4).Text
cmd.Parameters("@startdate").Value = HiddenFieldDate.Value
Dim reader As SqlDataReader = cmd.ExecuteReader()
Do While reader.Read()
For i As Integer = 5 To e.Row.Cells.Count - 1
Dim strTooltip As String = ""
Dim intTotalWeekHours As Integer = 0
Dim strWorkWeek As String = GridViewProjectEntry.HeaderRow.Cells(i).Text
Try
If Not IsDBNull(reader(strWorkWeek)) Then
If reader("Project") = " - " Then
TooltipArray(i) += reader(strWorkWeek) & " Hours -- Department Overhead" & "<br />" & vbCrLf
Else
TooltipArray(i) += reader(strWorkWeek) & " Hours -- " & reader("Project") & "<br />" & vbCrLf
End If
TotalHoursArray(i) += reader(strWorkWeek)
End If
Catch ex As Exception
End Try
Next
Loop
End Using
Hope that helps someone else!