У меня есть DataTable
, который был загружен с запросом SqlDataReader
. После того, как загружен мой DataTable
, я делаю цикл, что я вставлял данные с индексом SqlCommand
. Но DataTable
не обновляется. Как обновить DataTable
, пока данные обновляются в базе данных?Как обновить datatable после обновленного значения с помощью инструкции SqlCommand?
connectionx()
Dim dtreader As SqlDataReader
Dim cmddt As New SqlCommand("SELECT * from sometable", con)
dtreader = cmddt.ExecuteReader()
Dim dt As New System.Data.DataTable()
dt.Load(dtreader) 'Here from datareader
For index As Integer = currentRow To dt.Rows.Count - 1
Dim drR As DataRow = dt.NewRow()
Dim reader1 As SqlDataReader
Dim EP As DateTime
Dim EndW As String = dtnow.ToString("MM/dd/yyyy HH:mm")
Dim setEndWaiting As Integer = Convert.ToInt32(adapterSch.SetEndWTime(EndW, Convert.ToInt32(Session("ShipLoadingOrderFK"))))
Dim startPre As DateTime = EndW
Dim endPre As DateTime = startPre + TimeSpan.Parse(defPre)
Dim setPreDocumentTime As Integer = Convert.ToInt32(adapterSch.SetPreDocumentTime(startPre, endPre, Convert.ToInt32(Session("ShipLoadingOrderFK"))))
Dim startPump As DateTime = endPre
Dim endPump As DateTime
Dim shipKey As String = Shipid.SelectedValue
pumpigResult(MinutePumpResult, HoursPumpResult, FlowrateValue, Shipid.SelectedValue, Loading_No.Value, typeLoading.SelectedValue)
If FlowrateValue = 0 Or FlowrateValue = "" Then
endPump = endPre + TimeSpan.Parse(defPumping)
Else
endPump = endPre + New TimeSpan(HoursPumpResult, MinutePumpResult, 0)
End If
Dim setPumpTime As Integer = Convert.ToInt32(adapterSch.SetPumpingTime(startPump, endPump, Convert.ToInt32(Session("ShipLoadingOrderFK"))))
Dim startPost As DateTime = endPump
Dim endPost As DateTime = endPump + TimeSpan.Parse(defPost)
Dim setPostTime As Integer = Convert.ToInt32(adapterSch.SetPostTime(startPost, endPost, Convert.ToInt32(Session("ShipLoadingOrderFK"))))
После ввода данных в каждый индекс с кодом выше. Я получил значение в предыдущей строке (индекс-1), но перед обновлением OLD Data перед обновлением.
Dim EP as datetime = Convert.ToDateTime(dt.Rows(index - 1)("PostDocEnd").ToString())
Как обновить DataTable
так, что я могу получить предыдущие данные, которые были обновлены? Я снова попытаюсь перезагрузить DataTable
, но это ничего.
Спасибо
Событие, хотя там много кода, вы на самом деле не делаете ничего связанного с описанной проблемой. Нет вставки, нет «обновления». Я не вижу смысла этого цикла или созданной новой строки. – Plutonix
Почему вы запускаете цикл с currentRow и устанавливаете начальное значение. Я не вижу оператор Next for For. Кажется, что код не является полным. Вы создаете новую строку drR и не инициализировали внутри цикла. Просмотрите свой код и заполните его, чтобы мы могли помочь обнаружить проблему. –