Vb.net 如何在vb中的文本框中显示access数据库中的列总数?

Vb.net 如何在vb中的文本框中显示access数据库中的列总数?,vb.net,visual-studio,visual-studio-2010,Vb.net,Visual Studio,Visual Studio 2010,我正试图在一个vb程序的access数据库中显示一列的总和。我已经编写了以下代码,但它没有做任何事情-当程序运行时,文本框仍然是默认值 Dim command As OleDbCommand Dim data_reader As OleDbDataReader connection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=H:\Computing\Year 13\Comp

我正试图在一个vb程序的access数据库中显示一列的总和。我已经编写了以下代码,但它没有做任何事情-当程序运行时,文本框仍然是默认值

    Dim command As OleDbCommand
    Dim data_reader As OleDbDataReader

    connection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=H:\Computing\Year 13\Computing Project Course-work\Database41.accdb")

    command = New OleDbCommand("SELECT SUM(Distance) As Int32 FROM [Table3];", Conn)
    dr = command.ExecuteReader

    While dr.Read
        TextBox7.Text = dr.GetValue(4)
    End While

该命令只返回一列。
您不能使用try从索引4的列中读取值,它根本不存在。你应该得到一个例外。如果您没有看到异常,则只意味着您在某个地方有一个空的try/catch块,用于隐藏错误。您应该使用
dr.GetValue(0)
,但如果您在查询(SUM)中使用标量函数,那么最好使用
ExecuteScalar

Using connection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=H:\Computing\Year 13\Computing Project Course-work\Database41.accdb")
Using command = New OleDbCommand("SELECT SUM(Distance) As Total FROM [Table3];", Conn)
    Dim total = Convert.ToInt32(command.ExecuteScalar)
    TextBox7.Text = total.ToString
End Using
End Using

(请注意,连接、命令和读卡器等一次性对象应在使用完毕后进行处理。使用块可确保这一点)

该命令只返回一列。
您不能使用try从索引4的列中读取值,它根本不存在。你应该得到一个例外。如果您没有看到异常,则只意味着您在某个地方有一个空的try/catch块,用于隐藏错误。您应该使用
dr.GetValue(0)
,但如果您在查询(SUM)中使用标量函数,那么最好使用
ExecuteScalar

Using connection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=H:\Computing\Year 13\Computing Project Course-work\Database41.accdb")
Using command = New OleDbCommand("SELECT SUM(Distance) As Total FROM [Table3];", Conn)
    Dim total = Convert.ToInt32(command.ExecuteScalar)
    TextBox7.Text = total.ToString
End Using
End Using
(请注意,连接、命令和读卡器等一次性对象应在使用完毕后进行处置。使用块可确保这一点)