Добавлять линии к datatable asp наполнение начиная с базы данных

В моем приложении у меня есть дата table, который я наполняю начиная с реестра базы данных, беря следующий метод:

Public Shared Function RetData(query as String) As DataTable
    Dim conn As New Connection()
    Dim tabla As New DataTable()
    Try
        conn.Connection.Open()

        Dim strcom As String = quer
        Dim sqlDa As New SqlDataAdapter(strcom, conn.Connection())
        sqlDa.Fill(tabla)
        conn.Connection.Close()
    Catch ex As Exception
        conn.Connection.Close()
    End Try
    Return tabla
End Function

Этот реестр сохраняет в моей дате table, позже я это сохраняю в session типа datatable, чтобы показывать его после в grid.

Protected Sub btns_Click(sender As Object, e As EventArgs) Handles btns.Click
    Dim tbl As New DataTable
    tbl = clsUtilities.RetData("Select top 1 * from tabla")
    If tbl.Rows.Count > 0 Then
        Dim nrow As DataRow = tbl.Rows(0)
        lblsnum.Text = nrow("Serial_Number").ToString()
        Session("antenna") = tbl
    Else
    End If
End Sub


Protected Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
    Dim tbl As New DataTable
    tbl = Session("antenna")
    tbl.Columns.Add("Reason")
    tbl.Columns.Add("Out of the box")
    Dim row As DataRow
    row = tbl.NewRow
    Dim rowscount = tbl.Rows.Count
    For i = 0 To rowscount - 1
        tbl.Rows(i)("Reason") = ddlreason.SelectedItem.ToString
        tbl.Rows(i)("Out of the box") = ddlout.SelectedItem.ToString
    Next

    gvAntennasAdded.DataSource = tbl
    gvAntennasAdded.DataBind()
    Session("antenna") = tbl

End Sub

Однако я продолжу этот grid добавляя реестры то, что будет способствовать тому, чтобы каждый раз, когда я добавил один добавилась новая линия. Как я могу делать это?

1
задан 14.04.2017, 05:31
1 ответ

Анализируя твой недостаток то, что ты можешь делать, является следующим:

Dim tblGlobal As New DataTable
Protected Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click

tblGlobal = Session("antenna")

If tblGlobal .Rows.Count=0 then

tblGlobal .Columns.Add("Reason")
tblGlobal .Columns.Add("Out of the box")

End If

Dim row As DataRow
row = tblGlobal.NewRow
Dim rowscount = tblGlobal.Rows.Count
For i = 0 To rowscount - 1
    tblGlobal.Rows(i)("Reason") = ddlreason.SelectedItem.ToString
    tblGlobal.Rows(i)("Out of the box") = ddlout.SelectedItem.ToString
Next


gvAntennasAdded.DataSource = tblGlobal 
gvAntennasAdded.DataBind()
Session("antenna") = tblGlobal 
End Sub

, Если я понял проблему, soluciГіn состоит в том, чтобы создавать DataTable глобальной формы и санкционировать каждый раз, когда он будет добавлять один, чтобы знать, уходят ли они создавать колонны. В случае, если будет Веб твой проект у тебя может быть статический класс, чтобы создавать глобальный datatable.

Надеялся, что он подает тебе

1
ответ дан 24.11.2019, 12:30