Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vb.net中生成表格的有效方法_Vb.net_Html Table_Data Representation - Fatal编程技术网

在vb.net中生成表格的有效方法

在vb.net中生成表格的有效方法,vb.net,html-table,data-representation,Vb.net,Html Table,Data Representation,这个问题听起来可能很模糊。我正在寻找的是一种生成html的方法 我需要建立这个表: 实际上,顶行是一个标题,前两列也是标题 对于从(3,2)开始的每个单元格,我执行一个“count”查询 现在我正在做一个非常难看的循环来构建一个2D数组。我有一种感觉,必须变得更好。在不久的将来,我必须在每个“计数”的整数下面放置一个链接,链接到另一个表以显示与该整数相关的行 我现在就是这样做的: 我只是循环使用各种字典(字符串,字符串)来生成2D数组。为了构建数组,我使用两个变量来知道我在表中的位置:Dim

这个问题听起来可能很模糊。我正在寻找的是一种生成html
的方法

我需要建立这个表:

实际上,顶行是一个标题,前两列也是标题

对于从(3,2)开始的每个单元格,我执行一个“count”查询

现在我正在做一个非常难看的循环来构建一个2D数组。我有一种感觉,必须变得更好。在不久的将来,我必须在每个“计数”的整数下面放置一个链接,链接到另一个表以显示与该整数相关的行

我现在就是这样做的: 我只是循环使用各种
字典(字符串,字符串)
来生成2D数组。为了构建数组,我使用两个变量来知道我在表中的位置:
Dim lv\u TRow As Integer=0
Dim lv\u TCol As Integer=0

一定有更好的办法。也许是把这些东西转换成我还不知道的东西

你能帮我把这个弄得更好吗

Public Function build2DArray() As String(,)
    Dim lv_Tabel(15, 4) As String


    Dim riskLevels As New Dictionary(Of String, String) ' Kan gebruikt worden in WHERE
    riskLevels.Add("Extreem", 5)
    riskLevels.Add("Hoog", 4)
    riskLevels.Add("Normaal", 3)
    riskLevels.Add("Laag", 2)
    riskLevels.Add("Gering", 1)

    Dim algStss As New Dictionary(Of String, String)
    algStss.Add("Gestart", 0)
    algStss.Add("Geanalyseerd", 0)
    algStss.Add("Opgelost", 0)

    Dim incStss As New Dictionary(Of String, String) ' Kan gebruikt worden in WHERE
    incStss.Add("Gestart", "L14_IncSts IN (1,2)")
    incStss.Add("Geanalyseerd", "L14_IncSts IN (3,4,5,6,7)")
    incStss.Add("Opgelost", "L14_IncSts IN (8)")

    Dim prmStss As New Dictionary(Of String, String) ' Kan gebruikt worden in WHERE
    prmStss.Add("Gestart", "L24_StsIdt IN (1)")
    prmStss.Add("Geanalyseerd", "L24_StsIdt IN (2,3,4,5,6)")
    prmStss.Add("Opgelost", "L24_StsIdt IN (7)")

    Dim wzgStss As New Dictionary(Of String, String) ' Kan gebruikt worden in WHERE
    wzgStss.Add("Gestart", "L38_StsIdt IN (1,2)")
    wzgStss.Add("Geanalyseerd", "L38_StsIdt IN (3,4,5,6,7)")
    wzgStss.Add("Opgelost", "L38_StsIdt IN (8,9,10,11)")

    Dim headers As New Dictionary(Of String, String) ' Kan gebruikt worden in FROM
    headers.Add("Risiconiveau", 0)
    headers.Add("Status", 0)
    headers.Add("Incident", "Inc")
    headers.Add("Probleem", "Prm")
    headers.Add("Wijziging", "Wzg")

    Dim lv_Dtb As New Database
    'lv_Dtb.ExecuteQuery("SELECT * FROM Ris")

    Dim lv_TRow As Integer = 0
    Dim lv_TCol As Integer = 0

    For Each header As KeyValuePair(Of String, String) In headers
        lv_Tabel(lv_TRow, lv_TCol) = header.Key
        lv_TCol += 1
    Next

    lv_TCol = 0
    lv_TRow = 1

    For Each riskLevel As KeyValuePair(Of String, String) In riskLevels
        lv_Tabel(lv_TRow + 1, lv_TCol) = riskLevel.Key
        lv_TCol += 1

        For Each algSts As KeyValuePair(Of String, String) In algStss
            lv_Tabel(lv_TRow, lv_TCol) = algSts.Key
            lv_TRow += 1
        Next
        lv_TRow -= 3
        lv_TCol += 1

        For Each incSts As KeyValuePair(Of String, String) In incStss
            Try
                Dim dataset As DataSet = lv_Dtb.ExecuteQuery(QryString(1, incSts.Value, riskLevel.Value))
                lv_Tabel(lv_TRow, lv_TCol) = dataset.Tables(0).Rows(0).Item(0) 'eerste query
            Catch err As SqlException
                Logger.Log(err.Message)
                lv_Tabel(lv_TRow, lv_TCol) = "err"
            End Try
            lv_TRow += 1
        Next
        lv_TRow -= 3
        lv_TCol += 1

        For Each prmSts As KeyValuePair(Of String, String) In prmStss
            Try
                Dim dataset As DataSet = lv_Dtb.ExecuteQuery(QryString(2, prmSts.Value, riskLevel.Value))
                lv_Tabel(lv_TRow, lv_TCol) = dataset.Tables(0).Rows(0).Item(0) 'eerste query
            Catch err As SqlException
                Logger.Log(err.Message)
                lv_Tabel(lv_TRow, lv_TCol) = "err"
            End Try
            lv_TRow += 1
        Next
        lv_TRow -= 3
        lv_TCol += 1

        For Each wzgSts As KeyValuePair(Of String, String) In wzgStss
            Try
                Dim dataset As DataSet = lv_Dtb.ExecuteQuery(QryString(3, wzgSts.Value, riskLevel.Value))
                lv_Tabel(lv_TRow, lv_TCol) = dataset.Tables(0).Rows(0).Item(0) 'eerste query
            Catch err As SqlException
                Logger.Log(err.Message)
                lv_Tabel(lv_TRow, lv_TCol) = "err"
            End Try
            lv_TRow += 1
        Next

        lv_TCol -= 4
    Next

    lv_Dtb.CloseConnection()

    Return lv_Tabel
End Function
使用数据表

 Dim dtb As New DataTable
 dtb.Columns.Add("Risiconiveau", GetType(String))
 dtb.Columns.Add("Status", GetType(String))
 dtb.Columns.Add("Incident", GetType(Integer))
 dtb.Columns.Add("Probleem", GetType(Integer))
 dtb.Columns.Add("Wijziging", GetType(Integer))

 dtb.Rows.Add("Extreem", "Geanalyseerd", 0, 0, 0)
 dtb.Rows.Add("Extreem", "Opgelost", 0, 0, 0)
 dtb.Rows.Add("Extreem", "Gestart", 0, 0, 0)

 For Each drw As DataRow In dtb.Rows
   If CStr(drw("Risiconiveau")) = "Extreem" And CInt(drw("Incident")) = 0 Then
     drw("Opgelost") = CInt(drw("Opgelost")) + 1
   End If

 Next drw
 dtb.Dispose()