如何在vb的文本框中显示访问数据库中的列总数?

时间:2016-01-28 14:55:09

标签: vb.net visual-studio visual-studio-2010

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

    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

1 个答案:

答案 0 :(得分:0)

您只能从该命令返回一列 您不能使用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

(请注意,在完成使用它们之后,应该处理像连接,命令和读取器这样的一次性对象。使用块可以确保这一点。