Hi Guys,
I am populating my datagridview like this:
Code:PeopleTable = GetNewGameSheet(classid) dgvgame.Columns.Clear() Me.PeopleBindingSource.DataSource = PeopleTable dgvgame.DataSource = Me.PeopleBindingSource PeopleBindingNavigator.BindingSource = PeopleBindingSource With Depositbtn .HeaderText = "Deposit" .UseColumnTextForButtonValue = True .Text = "Deposit" .Name = "Deposit" End With With Withdrawalbtn .HeaderText = "Withdrawal" .UseColumnTextForButtonValue = True .Text = "Withdrawal" .Name = "Withdrawal" End With With comboboxcolumn .DataPropertyName = "jobid" .DataSource = RetrieveAllJobs() .ValueMember = "JobID" .DisplayMember = "Description" .HeaderText = "Job" .DisplayIndex = 4 '.Name = "JobID" '.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells '.ReadOnly = True End With With dgvgame .Columns("PeopleId").Visible = False .Columns("ClassId").Visible = False .Columns("AccountId").Visible = False .Columns("JobId").Visible = False .Columns("surname").HeaderText = "Surname" .Columns("firstname").HeaderText = "First Name" .Columns("balance").HeaderText = "Balance" .Columns("Day1").HeaderText = "Day 1" .Columns("Day1").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells .Columns("Day2").HeaderText = "Day 2" .Columns("Day2").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells .Columns("Day3").HeaderText = "Day 3" .Columns("Day3").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells .Columns("Day4").HeaderText = "Day 4" .Columns("Day4").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells .Columns("Day5").HeaderText = "Day 5" .Columns("Day5").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells .Columns.Add(Depositbtn) .Columns.Add(Withdrawalbtn) .Columns.Add(comboboxcolumn) End Withthen on the cellvaluechanged event of the datagridview I have thsi code:Code:Private Function GetNewGameSheet(ByVal classid As Integer) As DataTable Using con As New SqlConnection(dbpath) Dim command As New SqlCommand("SELECT peopleid,surname,firstname,balance,accountid,classid,cast(6 as bigint) as jobid,CAST(0 as bit) Day1,CAST(0 as bit) Day2, CAST(0 as bit) Day3, CAST(0 as bit) Day4, CAST(0 as bit) Day5 FROM v_new_gamesheet WHERE (ClassId=@ClassId) ORDER BY surname", con) command.Parameters.AddWithValue("@ClassId", classid) PeopleAdapter.SelectCommand = command PeopleTable = New DataTable PeopleAdapter.AcceptChangesDuringFill = False PeopleAdapter.Fill(PeopleTable) PeopleTable.Columns.Add("Wage") Return PeopleTable End Using End Function
what this does is, if a job is selected in the jobid combobox i get the wage attached to that job and for each checked column i add the wage up.
now this all works fine when I run my save code which i am posting in the next thread the value in my datatable for the Day1 column etc is true if I check itCode:Private Sub dgvgame_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvgame.CellValueChanged Dim balance As Decimal = 0 Dim wage As Decimal = 0 Using con As New SqlConnection(dbpath) If (dgvgame.Columns(e.ColumnIndex).Name = "Day1") Or (dgvgame.Columns(e.ColumnIndex).Name = "Day2") Or (dgvgame.Columns(e.ColumnIndex).Name = "Day3") Or (dgvgame.Columns(e.ColumnIndex).Name = "Day4") Or (dgvgame.Columns(e.ColumnIndex).Name = "Day5") Then If (e.RowIndex >= 0) Then Dim jobID As Integer = CInt(If(IsDBNull(dgvgame.Rows(e.RowIndex).Cells("JobID").Value), 0, dgvgame.Rows(e.RowIndex).Cells("JobID").Value)) If (jobID > 0) Then Dim wagecmd As New SqlCommand("SELECT Wage FROM Jobs WHERE JobID = @JobID;", con) wagecmd.Parameters.AddWithValue("@JobID", jobID) con.Open() wage = CDec(wagecmd.ExecuteScalar()) con.Close() End If If (CBool(dgvgame.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) = True) Then dgvgame.Rows(e.RowIndex).Cells("Wage").Value = CDec(If(IsDBNull(dgvgame.Rows(e.RowIndex).Cells("Wage").Value), 0, dgvgame.Rows(e.RowIndex).Cells("Wage").Value)) + wage Else If (CDec(dgvgame.Rows(e.RowIndex).Cells("Wage").Value) > 0) Then dgvgame.Rows(e.RowIndex).Cells("Wage").Value = CDec(dgvgame.Rows(e.RowIndex).Cells("Wage").Value) - wage End If End If End If End If End Using End Sub




Reply With Quote