Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net VB从Access数据库中提取平均值_Vb.net - Fatal编程技术网

Vb.net VB从Access数据库中提取平均值

Vb.net VB从Access数据库中提取平均值,vb.net,Vb.net,你好,很抱歉我的问题。几个小时以来,我一直在努力寻找答案(包括官方msdn微软指南),但没有任何积极的结果 目前我正在从事VB.Net包裹交付项目,该项目旨在写入access数据库并从中检索数据。在显示窗体上,它在数据网格视图中显示选定的数据,我使用sql查询仅检索UK entires。我能够显示符合条件的条目数,但无法计算如何运行另一个查询,以便计算包裹的平均成本,以及如何将结果传递到变量中。谁能帮我看看这个吗?将对如何改进代码提出建议。请记住,我的水平很低 Private Sub f

你好,很抱歉我的问题。几个小时以来,我一直在努力寻找答案(包括官方msdn微软指南),但没有任何积极的结果

目前我正在从事VB.Net包裹交付项目,该项目旨在写入access数据库并从中检索数据。在显示窗体上,它在数据网格视图中显示选定的数据,我使用sql查询仅检索UK entires。我能够显示符合条件的条目数,但无法计算如何运行另一个查询,以便计算包裹的平均成本,以及如何将结果传递到变量中。谁能帮我看看这个吗?将对如何改进代码提出建议。请记住,我的水平很低

    Private Sub frmUkInfo_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
    dbSource = "Data Source= D:/ProjectDatabase.mdb"
    connect.ConnectionString = dbProvider & dbSource

    connect.Open()
    dataSet.Tables.Add(dataTable)

    sql = "SELECT * FROM Parcels WHERE ParZone = ""UK"""
    dataAdapter = New OleDb.OleDbDataAdapter(sql, connect)
    dataAdapter.Fill(dataTable)

    dataView.DataSource = dataTable.DefaultView

    connect.Close()

    rowsNo = dataView.Rows.Count
    lblParcelsNoDisplay.Text = rowsNo

End Sub
提前感谢您的帮助。

试试看

sql = "SELECT * FROM Parcels WHERE ParZone = 'UK'"

您可以使用
Linq To DataTable
获得平均价格:

Dim parcelPrices = From row In dataTable.AsEnumerable()
                   Select row.Field(Of Double)("Price")
Dim averageCostOfParcels As Double = parcelPrices.Average()

如果你能告诉我们错误是什么,那会很有帮助。唯一的想法是我不会因为不知道如何解决问题而出现任何错误,也就是说,从数据库中的成本表中获取平均值。我已经尝试过了,并将结果分配给label:lblAvgCostDisplay.Text=averageCostOfParcels,尽管在标签中没有显示任何内容。有什么想法吗?@JaE:熟悉调试器,设置断点并检查
averageCostOfParcels
的值。该表是否包含所有行?包含价格列表的内容:
Dim list=parcelPrices.ToList()
?我已经运行了调试器。平均值始终为0.0。代码如下所示:“Dim parcelPrices=来自dataTable中的行。AsEnumerable()选择行。字段(双精度)(“成本”)Dim averageCostOfParcels as Double=parcelPrices.Average()lblAvgCostDisplay.Text=averageCostOfParcels”更改为“成本”,因为它是表的名称。也尝试过用单曲代替双曲,但得到了同样的结果。是的,该表包含行和值(目前英国为5)。Access文件中的表具有货币格式。这有什么关系吗?@JaE:检查调试器中的
DataTable
。也许你必须使用
Decimal
而不是
Double
,但我对此表示怀疑。将Double改为Decimal有效。非常感谢你。当做