Как в DataGridView записать программно данные, добавить строку и вывести туда итог - Visual Basic .NET
Формулировка задачи:
Доброе время суток!
Подскажите пожалуйста как сделать следующее
У меня вывело результат из mysql хочу красиво дописать в низу строку типо как итог: значения : значения: значения
Решение задачи: «Как в DataGridView записать программно данные, добавить строку и вывести туда итог»
textual
Листинг программы
' Универсальная процедура с входными параметрами для выборки из бызы
' iTableName - Имя создаваемой таблицы в iDataSet
' iCommandText - Текст команды
' iName - Имя дочерней процедуры
Public Sub SelectQueryData(ByVal iTableName As String, ByVal iCommandText As String, Optional ByVal iName As String = "")
Try ' Настраиваем команду SQL
With SqlCom
' Если таблица iTableName существует то, очищае ее
If iDataSet.Tables.Contains(iTableName) Then iDataSet.Tables(iTableName).Clear()
SqlCom.Connection = Conn ' Указываем подключение
SqlCom.CommandText = iCommandText ' Указываем текст запроса
End With
' Настраиваем Адаптер
With iDataAdapter
On Error GoTo UpdateTableName ' Если ошибка, значит привязка к DateSet уже определена
.SelectCommand = SqlCom ' Указываем команду на выгрузку данных из базы
.Fill(iDataSet, iTableName) ' Выгруженные данные заливаем в DateSet и именуем
UpdateTableName:
.Update(iDataSet, iTableName) ' Значит просто обновляем таблицу
End With
' ======================================================================================================
iDataAdapter.Dispose() ' Освобождаем ресурсы от DataAdapter
iDataSet.Dispose() ' Освобождаем ресурсы от DataSet
Conn.Close() ' Закрываем соединение
' Сообщение при неудачном подключении к базе данных
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly Or MsgBoxStyle.Critical & Chr(10) & _
"Ошибка вызова прощедуры: " & iName, Application.ProductName)
Conn.Close()
End Try
End Sub
' Выборка заявлений в суд
Public Sub GetPr_PetitionsDebt()
' Выгружаем заявлений в суд
iTableName = "PetitionsDebt" ' Имя будущей таблицы
iCommandText = "SELECT * " & _
"FROM vPr_PetitionsDebt " & _
"WHERE(AbonentId =" & My.Settings.CurrAbonId & ") " & _
"ORDER BY DtPeriodStart" ' Текст SQL запроса")
SelectQueryData(iTableName, iCommandText, "GetPr_PetitionsDebt") ' Выполняем универсальный Селект
' Добавление итоговы сумм в конец iDataSet
Dim iCount As Integer = iDataSet.Tables("PetitionsDebt").Rows.Count ' Кол-во исков
Dim iSumDebt, iSumGovTax As Double ' Сумма долгов и госпошлин
If iCount <> 0 Then
iSumDebt = SumValueInDateSet("PetitionsDebt", "DebtSumm")
iSumGovTax = SumValueInDateSet("PetitionsDebt", "GovTax")
' Запись итоговых сумм в массив
With iDataSet.Tables("PetitionsDebt")
Dim rowArray(7) As Object
rowArray(0) = DBNull.Value
rowArray(1) = DBNull.Value
rowArray(2) = DBNull.Value
rowArray(3) = DBNull.Value
rowArray(4) = "Итого"
rowArray(5) = iSumDebt
rowArray(6) = iSumGovTax
.Rows.Add.ItemArray = rowArray
End With
End If
End Sub
' Суммирование значений по столбцу в таблице из iDataSet
Public Function SumValueInDateSet(ByVal iTableName As String, ByVal iColumnName As String)
Dim Counter As Double = 0 ' Счетчик строк
Dim iSum As Double = 0 ' Накопитель суммы
' Цик по строкам iDataSet если он не пустой
If iDataSet.Tables(iTableName).Rows.Count <> 0 Then
For Each iRow As DataRow In iDataSet.Tables(iTableName).Rows
Counter = iRow.Item(iColumnName).ToString
iSum = Counter + iSum
Next
Return iSum
End If
Return 0
End Function