datagridviewtextboxcell error on 350 characters
-
this i my first post, so i hope i am explaining it correctly, have a datagridview with a textboxcolumn. it is bind to a dataset my problem is when i update a record wiht more that 350 characters it give me a nullrefference error. the database is updated when i check the physical record but the application crash here is the function Private Sub m_maintenanceProcessor_WebsiteUpdated(ByVal sender As Object, ByVal e As Processors.EventArgs) Handles m_maintenanceProcessor.WebsiteUpdated Dim tempTable As MaintenanceDataSet.WebsitePageDownloadDataTable Try If e.Data.Contains("ModifiedRows") = False Then Exit Sub tempTable = CType(e.Data("ModifiedRows"), MaintenanceDataSet.WebsitePageDownloadDataTable) If tempTable.Rows.Count > 0 Then RemoveHandler maintenanceDataGridView.RowValidated, AddressOf maintenanceDataGridView_RowValidated Processor.Data.WebsitePageDownload.LoadingTable = True Processor.Data.WebsitePageDownload.Merge(tempTable, False) Processor.Data.WebsitePageDownload.LoadingTable = False Processor.Data.WebsitePageDownload.RejectChanges() AddHandler maintenanceDataGridView.RowValidated, AddressOf maintenanceDataGridView_RowValidated Processor.Data.WebsitePageDownload.Merge(tempTable) 'For Each row As DataRow In tempTable.Rows ' If row.RowError IsNot Nothing AndAlso row.RowError.Length > 0 Then ' MsgBox(row.RowError) ' End If ' ' MsgBox(row("URL").ToString) 'Next 'MsgBox(Processor.Data.WebsitePageDownload.Columns("defaultstatusid").MaxLength) Processor.Data.WebsitePageDownload.AcceptChanges() End If Catch ex As Exception MsgBox(ex.Message.ToString) End Try tempTable = Nothing Me.StatusMessage = String.Empty End Sub error gets thrown on acceptchanges
-
this i my first post, so i hope i am explaining it correctly, have a datagridview with a textboxcolumn. it is bind to a dataset my problem is when i update a record wiht more that 350 characters it give me a nullrefference error. the database is updated when i check the physical record but the application crash here is the function Private Sub m_maintenanceProcessor_WebsiteUpdated(ByVal sender As Object, ByVal e As Processors.EventArgs) Handles m_maintenanceProcessor.WebsiteUpdated Dim tempTable As MaintenanceDataSet.WebsitePageDownloadDataTable Try If e.Data.Contains("ModifiedRows") = False Then Exit Sub tempTable = CType(e.Data("ModifiedRows"), MaintenanceDataSet.WebsitePageDownloadDataTable) If tempTable.Rows.Count > 0 Then RemoveHandler maintenanceDataGridView.RowValidated, AddressOf maintenanceDataGridView_RowValidated Processor.Data.WebsitePageDownload.LoadingTable = True Processor.Data.WebsitePageDownload.Merge(tempTable, False) Processor.Data.WebsitePageDownload.LoadingTable = False Processor.Data.WebsitePageDownload.RejectChanges() AddHandler maintenanceDataGridView.RowValidated, AddressOf maintenanceDataGridView_RowValidated Processor.Data.WebsitePageDownload.Merge(tempTable) 'For Each row As DataRow In tempTable.Rows ' If row.RowError IsNot Nothing AndAlso row.RowError.Length > 0 Then ' MsgBox(row.RowError) ' End If ' ' MsgBox(row("URL").ToString) 'Next 'MsgBox(Processor.Data.WebsitePageDownload.Columns("defaultstatusid").MaxLength) Processor.Data.WebsitePageDownload.AcceptChanges() End If Catch ex As Exception MsgBox(ex.Message.ToString) End Try tempTable = Nothing Me.StatusMessage = String.Empty End Sub error gets thrown on acceptchanges
Where does the error occur? Please edit your question and put <pre> tags around your code so it looks like:
Processor.Data.WebsitePageDownload.RejectChanges()
AddHandler maintenanceDataGridView.RowValidated, AddressOf maintenanceDataGridView_RowValidatedand indicate exactly which line the error occurs on.
-
Where does the error occur? Please edit your question and put <pre> tags around your code so it looks like:
Processor.Data.WebsitePageDownload.RejectChanges()
AddHandler maintenanceDataGridView.RowValidated, AddressOf maintenanceDataGridView_RowValidatedand indicate exactly which line the error occurs on.
Thanks for your response. The error occur on the acceptchanges line
Private Sub m_maintenanceProcessor_WebsiteUpdated(ByVal sender As Object, ByVal e As Processors.EventArgs) Handles m_maintenanceProcessor.WebsiteUpdated
Dim tempTable As MaintenanceDataSet.WebsitePageDownloadDataTableTry If e.Data.Contains("ModifiedRows") = False Then Exit Sub tempTable = CType(e.Data("ModifiedRows"), MaintenanceDataSet.WebsitePageDownloadDataTable) If tempTable.Rows.Count > 0 Then RemoveHandler maintenanceDataGridView.RowValidated, AddressOf maintenanceDataGridView\_RowValidated Processor.Data.WebsitePageDownload.LoadingTable = True Processor.Data.WebsitePageDownload.Merge(tempTable, False) Processor.Data.WebsitePageDownload.LoadingTable = False Processor.Data.WebsitePageDownload.RejectChanges() AddHandler maintenanceDataGridView.RowValidated, AddressOf maintenanceDataGridView\_RowValidated Processor.Data.WebsitePageDownload.Merge(tempTable) 'For Each row As DataRow In tempTable.Rows ' If row.RowError IsNot Nothing AndAlso row.RowError.Length > 0 Then ' MsgBox(row.RowError) ' End If ' ' MsgBox(row("URL").ToString) 'Next 'MsgBox(Processor.Data.WebsitePageDownload.Columns("defaultstatusid").MaxLength) Processor.Data.WebsitePageDownload.AcceptChanges() End If Catch ex As Exception MsgBox(ex.Message.ToString) End Try tempTable = Nothing Me.StatusMessage = String.Empty End Sub
-
Thanks for your response. The error occur on the acceptchanges line
Private Sub m_maintenanceProcessor_WebsiteUpdated(ByVal sender As Object, ByVal e As Processors.EventArgs) Handles m_maintenanceProcessor.WebsiteUpdated
Dim tempTable As MaintenanceDataSet.WebsitePageDownloadDataTableTry If e.Data.Contains("ModifiedRows") = False Then Exit Sub tempTable = CType(e.Data("ModifiedRows"), MaintenanceDataSet.WebsitePageDownloadDataTable) If tempTable.Rows.Count > 0 Then RemoveHandler maintenanceDataGridView.RowValidated, AddressOf maintenanceDataGridView\_RowValidated Processor.Data.WebsitePageDownload.LoadingTable = True Processor.Data.WebsitePageDownload.Merge(tempTable, False) Processor.Data.WebsitePageDownload.LoadingTable = False Processor.Data.WebsitePageDownload.RejectChanges() AddHandler maintenanceDataGridView.RowValidated, AddressOf maintenanceDataGridView\_RowValidated Processor.Data.WebsitePageDownload.Merge(tempTable) 'For Each row As DataRow In tempTable.Rows ' If row.RowError IsNot Nothing AndAlso row.RowError.Length > 0 Then ' MsgBox(row.RowError) ' End If ' ' MsgBox(row("URL").ToString) 'Next 'MsgBox(Processor.Data.WebsitePageDownload.Columns("defaultstatusid").MaxLength) Processor.Data.WebsitePageDownload.AcceptChanges() End If Catch ex As Exception MsgBox(ex.Message.ToString) End Try tempTable = Nothing Me.StatusMessage = String.Empty End Sub
-
what i know for a fact is the is a field that is set for 2000 characters but once this field goes over 350 the error gets triggered, other than that the application is fine
-
what i know for a fact is the is a field that is set for 2000 characters but once this field goes over 350 the error gets triggered, other than that the application is fine
Rhyde Marsh wrote:
what i know for a fact
But that is hardly relevant. Somewhere in your application something is being triggered which causes a null reference to be used. The only way to discover where that is and why, is to do some detailed debugging.
-
what i know for a fact is the is a field that is set for 2000 characters but once this field goes over 350 the error gets triggered, other than that the application is fine
-
Rhyde Marsh wrote:
what i know for a fact
But that is hardly relevant. Somewhere in your application something is being triggered which causes a null reference to be used. The only way to discover where that is and why, is to do some detailed debugging.
ok i will get to that. juss that i have been looking and and dont see where
-
sorry for the late response but data field is set to nvarchar 2000 and the MaxInputLength set at 2000
-
sorry for the late response but data field is set to nvarchar 2000 and the MaxInputLength set at 2000
Rhyde Marsh wrote:
nvarchar
Good. Check the line
Processor.Data.WebsitePageDownload.AcceptChanges()
Set the cursor on the AcceptChanges method, hit F12. Set breakpoints there, and make sure that the method does not swallow the changes.
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]
-
Rhyde Marsh wrote:
nvarchar
Good. Check the line
Processor.Data.WebsitePageDownload.AcceptChanges()
Set the cursor on the AcceptChanges method, hit F12. Set breakpoints there, and make sure that the method does not swallow the changes.
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]
not sure what you mean swallow, but the data is updated but there seems to be a problem when it returns to the UI
-
not sure what you mean swallow, but the data is updated but there seems to be a problem when it returns to the UI
Rhyde Marsh wrote:
not sure what you mean swallow,
I'm expecting a try-catch in that method that hides the exception that is thrown.
Rhyde Marsh wrote:
the data is updated but there seems to be a problem when it returns to the UI
Is the data updated beyond the 350-char mark? How do you know there's a problem? Do you have an exception and a stack-trace?
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]
-
Rhyde Marsh wrote:
not sure what you mean swallow,
I'm expecting a try-catch in that method that hides the exception that is thrown.
Rhyde Marsh wrote:
the data is updated but there seems to be a problem when it returns to the UI
Is the data updated beyond the 350-char mark? How do you know there's a problem? Do you have an exception and a stack-trace?
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]
yes it updates but then i get a nullrefference exception. so before the 350 mark it updates and refresh fine but anything after that i get the error
-
yes it updates but then i get a nullrefference exception. so before the 350 mark it updates and refresh fine but anything after that i get the error
-
no my problem was not solved, but i it seem to be on bug on microsoft side in the control s at System.Windows.Forms.DataGridView.ComputeVisibleColumns() at System.Windows.Forms.DataGridView.LayoutScrollBars() at System.Windows.Forms.DataGridView.ComputeLayout() at System.Windows.Forms.DataGridView.PerformLayoutPrivate(Boolean useRowShortcut, Boolean computeVisibleRows, Boolean invalidInAdjustFillingColumns, Boolean repositionEditingControl) at System.Windows.Forms.DataGridView.ResetUIState(Boolean useRowShortcut, Boolean computeVisibleRows) at System.Windows.Forms.DataGridViewRowCollection.OnCollectionChanged_PreNotification(CollectionChangeAction cca, Int32 rowIndex, Int32 rowCount, DataGridViewRow& dataGridViewRow, Boolean changeIsInsertion) at System.Windows.Forms.DataGridViewRowCollection.OnCollectionChanged(CollectionChangeEventArgs e, Int32 rowIndex, Int32 rowCount, Boolean changeIsDeletion, Boolean changeIsInsertion, Boolean recreateNewRow, Point newCurrentCell) at System.Windows.Forms.DataGridViewRowCollection.ClearInternal(Boolean recreateNewRow) at System.Windows.Forms.DataGridView.RefreshRows(Boolean scrollIntoView) at System.Windows.Forms.DataGridView.DataGridViewDataConnection.ProcessListChanged(ListChangedEventArgs e) at System.Windows.Forms.DataGridView.DataGridViewDataConnection.currencyManager_ListChanged(Object sender, ListChangedEventArgs e) at System.Windows.Forms.CurrencyManager.OnListChanged(ListChangedEventArgs e) at System.Windows.Forms.CurrencyManager.List_ListChanged(Object sender, ListChangedEventArgs e) at System.Data.DataView.OnListChanged(ListChangedEventArgs e) at System.Data.Listeners`1.Notify[T1,T2,T3](T1 arg1, T2 arg2, T3 arg3, Action`4 action) at System.Data.Index.OnListChanged(ListChangedEventArgs e) at System.Data.DataTable.ResetInternalIndexes(DataColumn column) at System.Data.DataTable.Clear(Boolean clearAll) at MCAP.MaintenanceDataSetTableAdapters.WebsitePageDownloadTableAdapter.FillByWhereClause(WebsitePageDownloadDataTable dataTable, String whereClause) in C:\Users\mmarshall.MTMOBAY\Desktop\Mark\MCAP\DataSet\MaintenanceDataSet.Designer.vb:line 35940 at MCAP.UI.Processors.Maintenance.LoadFilteredWebsite(String filterCondition) in C:\Users\mmarshall.MTMOBAY\Desktop\Mark\MCAP\UIProcess\Maintenance.vb:line 6328 i found similar issue on microsoft site
-
no my problem was not solved, but i it seem to be on bug on microsoft side in the control s at System.Windows.Forms.DataGridView.ComputeVisibleColumns() at System.Windows.Forms.DataGridView.LayoutScrollBars() at System.Windows.Forms.DataGridView.ComputeLayout() at System.Windows.Forms.DataGridView.PerformLayoutPrivate(Boolean useRowShortcut, Boolean computeVisibleRows, Boolean invalidInAdjustFillingColumns, Boolean repositionEditingControl) at System.Windows.Forms.DataGridView.ResetUIState(Boolean useRowShortcut, Boolean computeVisibleRows) at System.Windows.Forms.DataGridViewRowCollection.OnCollectionChanged_PreNotification(CollectionChangeAction cca, Int32 rowIndex, Int32 rowCount, DataGridViewRow& dataGridViewRow, Boolean changeIsInsertion) at System.Windows.Forms.DataGridViewRowCollection.OnCollectionChanged(CollectionChangeEventArgs e, Int32 rowIndex, Int32 rowCount, Boolean changeIsDeletion, Boolean changeIsInsertion, Boolean recreateNewRow, Point newCurrentCell) at System.Windows.Forms.DataGridViewRowCollection.ClearInternal(Boolean recreateNewRow) at System.Windows.Forms.DataGridView.RefreshRows(Boolean scrollIntoView) at System.Windows.Forms.DataGridView.DataGridViewDataConnection.ProcessListChanged(ListChangedEventArgs e) at System.Windows.Forms.DataGridView.DataGridViewDataConnection.currencyManager_ListChanged(Object sender, ListChangedEventArgs e) at System.Windows.Forms.CurrencyManager.OnListChanged(ListChangedEventArgs e) at System.Windows.Forms.CurrencyManager.List_ListChanged(Object sender, ListChangedEventArgs e) at System.Data.DataView.OnListChanged(ListChangedEventArgs e) at System.Data.Listeners`1.Notify[T1,T2,T3](T1 arg1, T2 arg2, T3 arg3, Action`4 action) at System.Data.Index.OnListChanged(ListChangedEventArgs e) at System.Data.DataTable.ResetInternalIndexes(DataColumn column) at System.Data.DataTable.Clear(Boolean clearAll) at MCAP.MaintenanceDataSetTableAdapters.WebsitePageDownloadTableAdapter.FillByWhereClause(WebsitePageDownloadDataTable dataTable, String whereClause) in C:\Users\mmarshall.MTMOBAY\Desktop\Mark\MCAP\DataSet\MaintenanceDataSet.Designer.vb:line 35940 at MCAP.UI.Processors.Maintenance.LoadFilteredWebsite(String filterCondition) in C:\Users\mmarshall.MTMOBAY\Desktop\Mark\MCAP\UIProcess\Maintenance.vb:line 6328 i found similar issue on microsoft site
-
yes, but cannot be limited because the length of the url entered is unknown
-
yes, but cannot be limited because the length of the url entered is unknown
This is not helping much, we're talking about different things. If you can fix the size of the column in the grid in where it is displayed to 100 pixels, then you can still enter long strings. It would prove whether or not the observed behaviour is caused by the internal resizing, or somewhere else. If fixing the width helps, then you'll need to look for other alternatives or find a fix. If fixing the width does not help, then the error is occurring somewhere else.
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]
-
This is not helping much, we're talking about different things. If you can fix the size of the column in the grid in where it is displayed to 100 pixels, then you can still enter long strings. It would prove whether or not the observed behaviour is caused by the internal resizing, or somewhere else. If fixing the width helps, then you'll need to look for other alternatives or find a fix. If fixing the width does not help, then the error is occurring somewhere else.
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]
had to change the column to accomodate a popup wasnt getting anywhere with it