Как вычислить столбец базы данных в .NET - PullRequest
0 голосов
/ 10 апреля 2010

У меня есть база данных с именем CarsType.accdb. В базе данных есть четыре поля Item_Name, Item_Num, Item_Qty, Item_Cost.

Мне удалось заставить базу данных отображать мои данные в VisualBasic, но я не уверен, как получить полную стоимость, отображаемую в моем ярлыке (lblTotalCost). Я предпочитаю делать это на VB, а не писать в моей программе доступа. Все, что я хочу сделать, умножить item_qty * Item_Cost Как бы я это сделал?

Public Class frmCarInventory

    Private Sub CarInventoryBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CarInventoryBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.CarInventoryBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.CarDataSet)

    End Sub

    Private Sub frmCarInventory_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'CarDataSet.CarInventory' table. You can move, or remove it, as needed.
        Me.CarInventoryTableAdapter.Fill(Me.CarDataSet.CarInventory)


        Try
            Me.CarInventoryTableAdapter.Fill(Me.CarDataSet.CarInventory)
        Catch ex As Exception
            MsgBox("The Database Files is Unavailable", , "Error")
        End Try



    End Sub

    Private Sub btnComputeTheTotalValueOfInventory_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnComputeTheTotalValueOfInventory.Click


        Dim strSql As String = "SELECT * FROM CarType "

        'strPath provides the database type and path of the CarType database.
        Dim strPath As String = "Provider=Microsoft.ACE.OLEDB.12.0 ;" & "Data Source=..\CarType.accdb"
        Dim odaInventory As New OleDb.OleDbDataAdapter(strSql, strPath)
        Dim DatCost As New DataTable
        Dim intCount As Integer
        Dim decTotalCost As Decimal = 0D

        'The DataTable name datCost is filled with the data
    odaInventory.Fill(DatCost)

        'The connection to the databsise is disconnected
        odaInventory.Dispose()

        For intCount = 0 To DatCost.Rows.Count - 1
            decTotalCost += Convert.ToDecimal(DatCost.Rows(intCount)("Total Inventory  Cost"))
        Next

        Me.lblTotalCost.Visible = True
        Me.lblTotalCost.Text = "El Value " & decTotalCost.ToString("C")

    End Sub
End Class

Будет ли это обрабатываться как SQL-запрос?

Ответы [ 2 ]

1 голос
/ 10 апреля 2010

Когда вы добавляете новый System.Data.DataColumn к System.Data.DataTable, вы можете указать выражение, создавая вычисляемый столбец.В C # синтаксис для этого:

dataTable.Columns.Add("total_cost", typeof(double), "item_qty * item_cost");  

Синтаксис для этого в VB.NET будет очень похожим, но я оставил его в качестве упражнения для читателя.

0 голосов
/ 10 апреля 2010

Может быть, вы могли бы просто использовать что-то вроде этого?

Dim TotalCost As String

TotalCost = Me![item_qty] * Me![item_cost]

Me![lblTotalCost].Caption = TotalCost
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...