I'm having a real hard time with displaying the proper data in Project Summary. First off, I am using an Access database to bring in the data. Total hours are being calculated correctly. Rates are as well. I tested using a messagebox to make sure the rates are being grabbed from the database correctly. However, now to get the total cost to multiply the individual rates by the individual hours is where I'm having the problem.
So to sum it all up, ALL I want to be able to do is multiply data from one table with data from another table. TWO separate select string statements. What am I doing wrong?!
Below I pasted the code I have so far and the directions in the assignment specs for this particular button. I highlighted the problem areas. If any one has any suggestions, they'd be greatly appreciated!
Thanks in advance...
[B]Project Summary[/B](button) – This button should display the total dollars and total hours expended on the currently selected project. If the user clicks this button before a current project has been successfully selected, display an error message box and exit the sub. In order to produce the total hours and dollars, your logic will have to search the database tables billing and employee to look for charges to the current project the user has entered. To compute dollars for that charge use, pay rate * hours charged.
Private Sub btnSummary_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSummary.Click Dim targetid As String Dim selectstring As String Dim selectstring2 As String Dim dummy As Integer Dim amount As String = "" Dim totalHours As Double = 0 Dim totalCost As Double = 0 Dim Hours As Double = 0 Dim Rate As Double = 0 If Not Integer.TryParse(txtPID.Text.Trim, dummy) Then MessageBox.Show("member id must be integer") txtPID.Focus() txtPID.SelectAll() Exit Sub End If targetid = txtPID.Text.Trim 'select string statements selectstring = "select * from billing where bill_projid ='" & _ targetid & "'" selectstring2 = "select * from employee,billing where employee.emp_id = billing.bill_empid" & _ " and billing.bill_projid ='" & targetid & "'" MessageBox.Show(selectstring) MessageBox.Show(selectstring2) 'Fill projectadapter = New OleDb.OleDbDataAdapter(selectstring, connectionstring) employeeadapter = New OleDb.OleDbDataAdapter(selectstring2, connectionstring) emptable = New DataTable employeeadapter.Fill(emptable) projtable = New DataTable projectadapter.Fill(projtable) If projtable.Rows.Count = 0 Then lblDisplay.Text = "You have not yet loaded a project." Exit Sub End If If emptable.Rows.Count = 0 Then lblDisplay.Text = "You have not yet loaded a project." Exit Sub End If 'for projtable For ndx = 0 To projtable.Rows.Count - 1 totalHours += CDbl(projtable.Rows(ndx).Item("bill_hours").ToString) Hours = CDbl(projtable.Rows(ndx).Item("bill_hours").ToString) 'MessageBox.Show(CStr(Hours))<<-- each hour shows up correctly Next 'for emptable For indx = 0 To emptable.Rows.Count - 1 Rate = CDbl(emptable.Rows(indx).Item("emp_payrate").ToString) 'MessageBox.Show(CStr(Rate))<<-- each rate shows up correctly Next total += Rate * Hours <<-- Always comes up as 80 (40 * 2) MessageBox.Show(CStr(Rate)) MessageBox.Show(CStr(Hours)) MessageBox.Show(CStr(total)) totalCost = total lblDisplay.Text = "Total Hours to date: " & totalHours.ToString & Environment.NewLine _ & "Total Cost to date: $" & totalCost.ToString & Environment.NewLine End Sub