I have a datagrid that is populated with data. If the operator scrolls off to the click on a field that is off to the right (not initially displayed on the grid) ---- then the operator does something that needs to repopulate that data with a different set of information --- an error is generated. The new data consists of the same fields, but just it is just pulling in a different set of data. If the operator does not scroll off to the side of the grid but refreshes the grid with new information, the error does not occur. If the operator scrolls off to the right, but does not click on a cell, an error does not occur. I have included the code that binds data to the grid and displays it. I've narrowed down that it is stopping on the "dgtabhistory.DataSource = mydataview " statement where I bind the data to the view. The error says: "An unhandled exception of type 'System.ArgumentException' occurred in system.windows.forms.dll
Additional information: Column 'Strategy ID and Desc' does not belong to table ACTIVITYHISTORYGRID." The column name may change --- it kind of depends on how far over to the right I scroll on the grid and which cell I click on.

Does anyone know about a possible bug with VB.net? Or am I missing something?? Is there a special command(s) I need to do before I bind new data to a datagrid?




PHP Code:
Dim sqlConn4 As SqlConnection = New SqlConnection(Connection)

            Try

                
sqlConn4.Open()
                
Dim sqlcomm4 As New SqlDataAdapter("salesRaptor_GetActivityHistoryPC"sqlConn4)
                
sqlcomm4.SelectCommand.CommandType CommandType.StoredProcedure

                Dim workParam4 
As SqlParameter = New SqlParameter
                workParam4 
sqlcomm4.SelectCommand.Parameters.Add("@Rep"SqlDbType.VarChar25)
                If 
chkTabHistoryWholeTeam.CheckState CheckState.Checked Then
                    sqlcomm4
.SelectCommand.Parameters("@Rep").Value Rep_ID
                
Else
                    
sqlcomm4.SelectCommand.Parameters("@Rep").Value txTabHistoryRepID.Text
                End 
If
                
workParam4.Direction ParameterDirection.Input

                workParam4 
sqlcomm4.SelectCommand.Parameters.Add("@Status"SqlDbType.VarChar25)
                
Dim type As String
                type 
""
                
If cmbTabHistoryStatus.SelectedItem "All Closed Statuses" Then type ""
                
If cmbTabHistoryStatus.SelectedItem "Emailed Status Only" Then type "E"
                
If cmbTabHistoryStatus.SelectedItem "Attempted Status Only" Then type "A"
                
If cmbTabHistoryStatus.SelectedItem "Completed Status Only" Then type "C"
                
sqlcomm4.SelectCommand.Parameters("@Status").Value type.ToString
                workParam4
.Direction ParameterDirection.Input

                workParam4 
sqlcomm4.SelectCommand.Parameters.Add("@ProspectID"SqlDbType.VarChar25)
                
sqlcomm4.SelectCommand.Parameters("@ProspectID").Value Prospid.ToString
                workParam4
.Direction ParameterDirection.Input

                workParam4 
sqlcomm4.SelectCommand.Parameters.Add("@contactID"SqlDbType.VarChar25)
                If 
tabhistproscontsw "CONTACT" Then
                    sqlcomm4
.SelectCommand.Parameters("@contactid").Value ActContid.ToString
                
Else
                    
sqlcomm4.SelectCommand.Parameters("@contactid").Value ""
                
End If
                
workParam4.Direction ParameterDirection.Input

                workParam4 
sqlcomm4.SelectCommand.Parameters.Add("@wholeteam"SqlDbType.VarChar1)
                If 
chkTabHistoryWholeTeam.Checked True Then
                    sqlcomm4
.SelectCommand.Parameters("@wholeteam").Value "Y"
                
Else
                    
sqlcomm4.SelectCommand.Parameters("@wholeteam").Value "N"
                
End If
                
workParam4.Direction ParameterDirection.Input

                workParam4 
sqlcomm4.SelectCommand.Parameters.Add("@allreps"SqlDbType.VarChar1)
                If 
chkTabHistoryAllReps.CheckState CheckState.Checked Then
                    sqlcomm4
.SelectCommand.Parameters("@allreps").Value "Y"
                
Else
                    
sqlcomm4.SelectCommand.Parameters("@allreps").Value "N"
                
End If
                
workParam4.Direction ParameterDirection.Input

                Dim ds 
As New DataSet
                sqlcomm4
.Fill(ds"ACTIVITYHISTORYGRID")     'holds data from query

                '
ds.Tables(0).Columns(16).ColumnMapping MappingType.Hidden ' hide the record status field

                Dim x = ds.Tables(0).Rows.Count()
                Dim mydatatable As DataTable = ds.Tables(0) '
table name
                Dim mydataview 
As DataView mydatatable.DefaultView
                
' mydataview.Sort = "Date Closed"  'sort table
                dgtabhistory
.DataSource mydataview 'binds data to grid

                Dim ts1 As New DataGridTableStyle ' 
change column widths
                ts1
.MappingName "ACTIVITYHISTORYGRID"

                
Dim numRows As Integer dgtabhistory.BindingContext(dgtabhistory.DataSourcedgtabhistory.DataMember).Count
                txRecCountHistory
.Text "Count: " CStr(numRows.ToString)
                If (
dgtabhistory.CurrentRowIndex numRows) And (dgtabhistory.CurrentRowIndex > -1Then
                    ContactHistoryActivityID 
CStr(dgtabhistory(dgtabhistory.CurrentRowIndex13).ToString'store current activity id
                End If

                Try             ' 
put inside a try because 2nd time throughit errors out
                    dgtabhistory
.TableStyles.Add(ts1)

                    
ts1.GridColumnStyles(0).Width 120 ' change width of date/time fld
                    ts1.GridColumnStyles(1).Width = 150 ' 
change width of contact name
                    ts1
.GridColumnStyles(2).Width 120 ' change width of status
                    ts1.GridColumnStyles(3).Width = 120 ' 
change width of type
                    ts1
.GridColumnStyles(4).Width 200 ' change width of regarding
                    ts1.GridColumnStyles(5).Width = 200 ' 
change width of results
                    ts1
.GridColumnStyles(6).Width 50 ' change width of priority
                    ts1.GridColumnStyles(7).Width = 100 ' 
change width of rep
                    ts1
.GridColumnStyles(8).Width 100 ' change width of personal business
                    ts1.GridColumnStyles(9).Width = 150 ' 
change width of strategy id/des
                    ts1
.GridColumnStyles(10).Width 90 ' change width of strategy level
                    ts1.GridColumnStyles(11).Width = 75 ' 
change width of order id
                    ts1
.GridColumnStyles(12).Width 75 ' change width of prospect id
                    ts1.GridColumnStyles(13).Width = 75 ' 
change width of activity id
                    ts1
.GridColumnStyles(14).Width 75 ' change width of contact id
                    ts1.GridColumnStyles(15).Width = 150 ' 
change width of name
                    ts1
.GridColumnStyles(16).Width 75 ' change width of new prospect

                    ts1.DataGrid.Refresh()

                    ' 
date datetime fields to show time    
                    Dim dgtbc 
As DataGridTextBoxColumn
                    dgtbc 
CType(dgtabhistory.TableStyles(0).GridColumnStyles(0), DataGridTextBoxColumn)
                    If 
Not dgtbc Is Nothing Then dgtbc.Format "g"


                
Catch

                
End Try

                
sqlConn4.Close()

            Catch 
tt As Exception
                Errmsg 
tt.ToString
                EventSW 
"Y"
                
errormsg() ' display error msg

                sqlConn4.Close()

            Finally
                sqlConn4.Close()

            End Try