sql - Can only see last row of SqlDataReader -
so have gridview display hours employees scheduled work. grid limited 12 weeks , displays hours selected project. grid product of stored procedure creates pivot table, work weeks pivot columns.
i'm adding tooltip each cell in grid displays total hours scheduled each week (showing scheduled hours project, not selected project). if employee has hours scheduled 1 project, tooltip displays expected. however, when there mutiple projects, last project (last row) of query makes tooltip.
i can see what's happening i'm recreating strtooltip variable each row, , that's why last row displayed. can't seem engineer clever way read data efficiently.
the below called on grid's rowdatabound event:
using con new sqlconnection(cnsqllive) con.open() dim cmd 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 = datstartdate dim reader sqldatareader = cmd.executereader() while reader.read() integer = 5 e.row.cells.count - 1 dim strtooltip string = "" dim inttotalweekhours integer = 0 dim strworkweek string = gridview1.headerrow.cells(i).text dim temptextboxas textbox = directcast(e.row.cells(i).controls(0), textbox) if not isdbnull(reader(strworkweek)) strtooltip += reader(strworkweek) & " hours -- " & reader("project") & "<br />" & vbcrlf inttotalweekhours += reader(strworkweek) end if strtooltip += "-------------" & "<br />" & inttotalweekhours & " total hours week" temptextbox.tooltip = strtooltip next loop end using thanks in advance!
i figured out creating arrays outside of loop, so:
dim tooltiparray() string = {"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""} dim totalhoursarray() integer = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} using con new sqlconnection(cnsqllive) con.open() dim cmd 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 sqldatareader = cmd.executereader() while reader.read() integer = 5 e.row.cells.count - 1 dim strtooltip string = "" dim inttotalweekhours integer = 0 dim strworkweek string = gridviewprojectentry.headerrow.cells(i).text try if not isdbnull(reader(strworkweek)) if reader("project") = " - " 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 exception end try next loop end using hope helps else!
Comments
Post a Comment