none
Adding new row to unbound datagridview RRS feed

  • Question

  • I have an unbound datagridview. Because of the various things I am doing with the data in the grid I do not want to bind it. The columns are predefined in the settings (Edit Columns) of the datagridview.

    I want to create a new row and then populate the grid row with data. I am trying to use the .Add.Rows method but it is failing with  {"Index was out of range. Must be non-negative and less than the size of the collection." & vbCrLf & "Parameter name: index"}

    The following SQL retrieves data:

    USE CCAP
    declare @ScheduleName as varchar(30) = 'Walk-In Center April Wk 1 2019'
    Select ShiftName, ScheduleStart, ScheduleEnd, Position, ADP_ID1, Name1, ADP_ID2, Name2, ADP_ID3, Name3, ADP_ID4, Name4, ADP_ID5, Name5, ADP_ID6, Name6, ADP_ID7, Name7 
    from FormattedSchedules 
    where ScheduleName = @ScheduleName;
    

    and the rowcount is greater than 0 so it is getting results.

    I do not understand what index is out of range or why the collection is 0

    Code is below:

            Dim FSchedCmd As SqlCommand
            Dim FSchedSQL As String
            Dim FSchedConn As New SqlConnection()
            Dim FSchedadapter As New SqlDataAdapter()
            Dim i As Integer = 0
            Dim rowIndex As Integer
            Dim row As DataGridViewRow
    
            AddedNewRow = 1
    
            Dim dsFSched As New DataSet()
            FSchedSQL = "Select ShiftName, ScheduleStart, ScheduleEnd, Position, ADP_ID1, Name1, ADP_ID2, Name2, ADP_ID3, Name3, ADP_ID4, Name4, ADP_ID5, Name5, ADP_ID6, Name6, ADP_ID7, Name7 from FormattedSchedules where ScheduleName = @ScheduleName;"
            Try
                If GlobalVariables.logProd = 1 Then
                    GlobalVariables.strConnection = "CCAPProdConnectionString"
                Else
                    GlobalVariables.strConnection = "CCAPTestConnectionString"
                End If
                FSchedConn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings(GlobalVariables.strConnection).ConnectionString
                FSchedConn.Open()
                FSchedCmd = New SqlCommand(FSchedSQL, FSchedConn)
                FSchedCmd.Parameters.Add("@ScheduleName", SqlDbType.VarChar).Value = cboCreateScheduleName.Text
                FSchedadapter.SelectCommand = FSchedCmd
                FSchedadapter.Fill(dsFSched)
                FSchedadapter.Dispose()
                FSchedCmd.Dispose()
                FSchedConn.Close()
                'dgvCreateSchedule.DataSource = dsFSched.Tables(0)
                dgvCreateSchedule.Rows.Clear()
                With dgvCreateSchedule
                    Dim RowNo As Long = 0
                    '.RowCount = 0
                    While RowNo <= dsFSched.Tables(0).Rows.Count - 1
    
                        .Rows.Add(1)
                        .Rows(RowNo).Cells(0).Value = dsFSched.Tables(0).Rows(RowNo).Item(0) 'ShiftName
                        '.Rows(RowNo).Cells(1).Value = dsFSched.Tables(0).Rows(RowNo).Item(1) 'Start Time
                        .Rows(RowNo).Cells(1).Value = Convert.ToDateTime(dsFSched.Tables(0).Rows(RowNo).Item(1)).TimeOfDay
                        '.Rows(RowNo).Cells(2).Value = dsFSched.Tables(0).Rows(RowNo).Item(2) 'End Time
                        .Rows(RowNo).Cells(2).Value = Convert.ToDateTime(dsFSched.Tables(0).Rows(RowNo).Item(2)).TimeOfDay 'End Time
                        .Rows(RowNo).Cells(3).Value = dsFSched.Tables(0).Rows(RowNo).Item(3) 'Position
                        .Rows(RowNo).Cells(4).Value = dsFSched.Tables(0).Rows(RowNo).Item(4) 'ADP_ID1
                        .Rows(RowNo).Cells(5).Value = dsFSched.Tables(0).Rows(RowNo).Item(5) 'Name1
                        .Rows(RowNo).Cells(6).Value = dsFSched.Tables(0).Rows(RowNo).Item(6) 'ADP_ID2
                        .Rows(RowNo).Cells(7).Value = dsFSched.Tables(0).Rows(RowNo).Item(7) 'Name2
                        .Rows(RowNo).Cells(8).Value = dsFSched.Tables(0).Rows(RowNo).Item(8) 'ADP_ID3
                        .Rows(RowNo).Cells(9).Value = dsFSched.Tables(0).Rows(RowNo).Item(9) 'Name3
                        .Rows(RowNo).Cells(10).Value = dsFSched.Tables(0).Rows(RowNo).Item(10) 'ADP_ID4
                        .Rows(RowNo).Cells(11).Value = dsFSched.Tables(0).Rows(RowNo).Item(11) 'Name4
                        .Rows(RowNo).Cells(12).Value = dsFSched.Tables(0).Rows(RowNo).Item(12) 'ADP_ID5
                        .Rows(RowNo).Cells(13).Value = dsFSched.Tables(0).Rows(RowNo).Item(13) 'Name5
                        .Rows(RowNo).Cells(14).Value = dsFSched.Tables(0).Rows(RowNo).Item(14) 'ADP_ID6
                        .Rows(RowNo).Cells(15).Value = dsFSched.Tables(0).Rows(RowNo).Item(15) 'Name6
                        .Rows(RowNo).Cells(16).Value = dsFSched.Tables(0).Rows(RowNo).Item(16) 'ADP_ID7
                        .Rows(RowNo).Cells(17).Value = dsFSched.Tables(0).Rows(RowNo).Item(17) 'Name7
                        RowNo = RowNo + 1
                    End While
                End With
    
                If dgvCreateSchedule.RowCount > 0 Then
                    dgvCreateSchedule.Rows(0).Selected = True
                    dgvCreateSchedule.CurrentCell = dgvCreateSchedule.Rows(0).Cells(0)
                    'dgvCreateSchedule.FirstDisplayedScrollingRowIndex = dgvCreateSchedule.CurrentRow.Index
                End If
            Catch ex As Exception
                MessageBox.Show("Cannot open FormattedSchedules to load grid")
            End Try
            AddedNewRow = 0
    

    Thursday, May 23, 2019 2:35 PM

All replies

  • Hello,

    Which line is the exception being thrown on?

    If it's on the highlighted line put a breakpoint on that line, hover over RowCount, what is the value? Hover over RowNo, what is the value?



    Please remember to mark the replies as answers if they help and unmarked them if they provide no help, this will help others who are looking for solutions to the same or similar problem. Contact via my Twitter (Karen Payne) or Facebook (Karen Payne) via my MSDN profile but will not answer coding question on either.

    NuGet BaseConnectionLibrary for database connections.

    StackOverFlow
    profile for Karen Payne on Stack Exchange


    Thursday, May 23, 2019 3:02 PM
    Moderator