如何使用SqlCommand语句在更新值后刷新数据表

本文关键字:刷新 数据表 更新 何使用 SqlCommand 语句 | 更新日期: 2023-09-27 18:05:29

我有一个加载了SqlDataReader查询的DataTable。在我的DataTable被加载后,我做循环,我用SqlCommand每个索引插入数据。但是DataTable没有刷新。如何刷新DataTable,而数据在数据库中更新?

    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"))))

插入数据后,每个索引与上面的代码。我已经得到上一行的值(index-1),但我得到旧数据之前更新

Dim EP as datetime = Convert.ToDateTime(dt.Rows(index - 1)("PostDocEnd").ToString())

如何刷新DataTable,以便我可以获得以前已更新的数据?我试着重新加载DataTable再次,但什么也没有。

谢谢

如何使用SqlCommand语句在更新值后刷新数据表

解决!我只是在开始索引循环时重新加载数据阅读器和刷新数据表的行代码。

    dt.reset()
    dtreader = cmddt.ExecuteReader()
    Dim dt As New System.Data.DataTable()
    dt.Load(dtreader)