2010-04-10 6 views
0

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

Я могу получить базу данных для отображения моих данных в 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 satement?

+1

Если вам нужен ответ, который поможет вам, вам нужно будет опубликовать код, который вы используете, для отображения данных, которые вы можете отобразить. Слишком много возможных способов отображения данных, и чтобы получить ответ, который поможет вам, нам нужно увидеть, как вы это делаете. – Oded

+1

Я думаю, нам нужно немного увидеть ваш код, иначе мы можем дать вам общий ответ. – BobbyShaftoe

+0

Я отправил весь код для своей программы .. Будь добр :) Я не программист, но учился. – Michael

ответ

1

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

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

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

+0

Понравилось немного, но я понял. Спасибо за подсказку, поставленную в правильном мышлении. – Michael

0

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

Dim TotalCost As String 

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

Me![lblTotalCost].Caption = TotalCost 
Смежные вопросы