DataGridView добавить строку - PullRequest
       4

DataGridView добавить строку

0 голосов
/ 31 декабря 2018

введите описание изображения здесь Я пытаюсь добавить строки в DataGridView, что мне удалось, но у меня есть один столбец без границ, где происходит некоторая математика.
Я хочу сумму этого столбца под ним.

Примечание: Cell(10) является неограниченным.В этом случае я получаю сообщение об ошибке:

Столбец не существует

(очевидно, он недоступен для данных).Вот мой код:

Public Sub PrintData()
    PrintSQL.ExecQuery("SELECT * FROM Cisnik WHERE Datum = '" & 
                       CDate(LB2.Text).ToString("MM.dd.yyyy") & "'; ")
    If PrintSQL.HasException(True) Then Exit Sub
    DGV3Print.DataSource = PrintSQL.DBDT

    For Each r As DataGridViewRow In DGV3Print.Rows
        r.Cells(10).Value = (r.Cells(1).Value - r.Cells(2).Value - r.Cells(4).Value - r.Cells(6).Value)
        tb = tb + r.Cells(10).Value
    Next

    Dim myrow = PrintSQL.DBDT.NewRow
    myrow(0) = "CELKEM"
    myrow(10) = tb
    PrintSQL.DBDT.Rows.Add(myrow)
End Sub

Буду признателен за любые предложения

Ответы [ 4 ]

0 голосов
/ 09 января 2019

Чтобы добавить строку в DateGridView, см. Пример ниже.

Imports System.Data.SqlClient
Public Class Form1
    Dim sCommand As SqlCommand
    Dim sAdapter As SqlDataAdapter
    Dim sBuilder As SqlCommandBuilder
    Dim sDs As DataSet
    Dim sTable As DataTable

    Private Sub load_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles load_btn.Click
        Dim connectionString As String = "Data Source=.;Initial Catalog=pubs;Integrated Security=True"
        Dim sql As String = "SELECT * FROM Stores"
        Dim connection As New SqlConnection(connectionString)
        connection.Open()
        sCommand = New SqlCommand(sql, connection)
        sAdapter = New SqlDataAdapter(sCommand)
        sBuilder = New SqlCommandBuilder(sAdapter)
        sDs = New DataSet()
        sAdapter.Fill(sDs, "Stores")
        sTable = sDs.Tables("Stores")
        connection.Close()
        DataGridView1.DataSource = sDs.Tables("Stores")
        DataGridView1.ReadOnly = True
        save_btn.Enabled = False
        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect

    End Sub

    Private Sub new_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles new_btn.Click
        DataGridView1.[ReadOnly] = False
        save_btn.Enabled = True
        new_btn.Enabled = False
        delete_btn.Enabled = False
    End Sub

    Private Sub delete_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles delete_btn.Click
        If MessageBox.Show("Do you want to delete this row ?", "Delete", MessageBoxButtons.YesNo) = DialogResult.Yes Then
            DataGridView1.Rows.RemoveAt(DataGridView1.SelectedRows(0).Index)
            sAdapter.Update(sTable)
        End If
    End Sub

    Private Sub save_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles save_btn.Click
        sAdapter.Update(sTable)
        DataGridView1.[ReadOnly] = True
        save_btn.Enabled = False
        new_btn.Enabled = True
        delete_btn.Enabled = True
    End Sub
End Class

http://vb.net -informations.com / datagridview / vb.net_datagridview_database.htm

Я знаю, что вы можете суммировать точки данных в DataGridView, но я очень давно этого не делал.Примерно так должно быть довольно близко ...

Dim sum As Integer = 0
For i As Integer = 0 To dataGridView1.Rows.Count() - 1 Step +1
    sum = sum + dataGridView1.Rows(i).Cells(2).Value
Next

textBoxSum.Text = sum.ToString()
0 голосов
/ 31 декабря 2018

Я решил это так: это может быть любительским, потому что я начинающий, но на самом деле это работает так, как мне нужно.Код:

 Dim myrow = PrintSQL.DBDT.NewRow
    Dim i As Integer
    i = DGV3Print.Rows.Count - 1
    DGV3Print.Rows(i).Cells(0).Value = "CELKEM"
    DGV3Print.Rows(i).Cells(10).Value = tb
    PrintSQL.DBDT.Rows.Add(myrow)

В любом случае, спасибо за ваши предложения

0 голосов
/ 02 января 2019

Гораздо более простой способ добавить строку в DataGridView:

DataGridView.Rows.Add({Data1,Data2})
0 голосов
/ 31 декабря 2018

Действительно ли ваш столбец Datum хранится в базе данных в виде строки?Вы действительно не должны объединять строки для создания SQL-запроса.Научитесь использовать параметры.Зачем брать строку, преобразовывать ее в дату, а затем обратно в строку?Чтобы решить вашу проблему, просто позвольте базе данных сделать всю работу.Это просто демонстрирует образец для использования.Затем привяжите к своей сетке.

Dim s = "Select Num1, Num2, Num3, Num1 + Num2 + Num3 As Total From Numbers;"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...