从VB.net中的数据库中读取更新的记录

时间:2017-09-21 12:46:03

标签: database vb.net

我正在使用VB.Net从数据库中的表中读取字段。计时器计划每5秒读取该字段的值。我正在使用数据适配器来获取表中的值,该表中第一行的第一个元素是我的数据。 我观察到的是,如果我在for循环中读取数据,它可以正常工作。外部在该字段值中所做的更改将反映在用于存储该数据的变量中。但是,如果我直接读取第一行的索引0元素,则变量不会反映外部对数据库所做的更改。

'----declaration---
 Dim query2 As String = "SELECT Data2 FROM DSSControl WHERE StationID LIKE 1"
 Dim MDBConnString_ As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\DrumScanningSystem.mdb;;"
Dim ds As New DataSet
Dim cnn As OleDbConnection = New OleDbConnection(MDBConnString_)

'-----use in timer


If cnn.State = ConnectionState.Closed Then
            cnn.Open()
        End If

        Dim cmd1 As New OleDbCommand(query2, cnn)
        Dim da2 As New OleDbDataAdapter(cmd1)
        da2.Fill(ds, "DSSControl")

        Dim t2 As DataTable = ds.Tables("DSSControl")
        Dim row2 As DataRow

        Dim flagvar As UInteger

        For Each row2 In t2.Rows
            flagvar = CUInt(row2(0))
        Next

这可以正常工作,但如果我使用

而不是循环
     row2 = t2.Rows(0) 

     flagvar = CInt(row2(0))

这并不反映'flagvar'的变化 提前谢谢!

1 个答案:

答案 0 :(得分:0)

请更正flagvar = CUInt(row2(0)),您使用flagvar = CInt(row2(0))丢失数据。也许这就是问题

(INTEGER

从-2 ^ 31(-2,147,483,648)到2 ^ 31 - 1(2,147,483,647)的整数(整数)数据。存储大小为4个字节。

UINTEGER

从0到2 ^ 32的无符号整数(整数)数据(4294967295)存储大小为4个字节。)

您可能对非负值感兴趣