VS Studio DataGridView error - sql

I am attempting to handle a local DB for a program I am doing, but I ran into this error that I can't get my head around! Whenever I attempt to edit a row in the gridview I get this error..
Screenshots:
https://i.gyazo.com/cc48a33863fada3e70e445620e6e9b2e.mp4
https://gyazo.com/5b184ea8aead4407e1bd2f0dd081b38c

You row has multiple column. Free column is a not null column.
When you add row, initialise the value of checkbox column.
dataGridView1.Rows[2].Cells[3].Value = true;

You need to add one event handler to your data grid and handle the error. Example
add the below code in your form loading event
AddHandler DataGridView1.DataError, AddressOf DataErrorHandler
Replace DataGridView1 with your data grid name and then create the below function and handle your error.
Private Sub DataErrorHandler(ByVal sender As Object, ByVal e As DataGridViewDataErrorEventArgs)
'handle the error or do nothing.
End Sub

Related

Delete selected row in Datagridview

I have a datagridview in which I want to insert a button for removing the selected row. I created without any problems the AddRow Button and, following the same idea, I tried to create the RemoveRow button with the following code:
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
DataGridView2.Rows.Remove()
End Sub
When I start debugging I'm having BC30455 error, about not specified argument. What am I doing wrong? I tried to find out here in the forum but I've found only sth about C# and not VB.net
Best regards and thanks all are gonna answer me.

DataGridView.DataSource stopped triggering DataSourceChanged event

In my code I used to do the following in the RowEnter event of another DataGridView:
dgv.DataSource = SomeFunctionReturningDataTable(ID)
The function looks like this:
Function SomeFunctionReturningDataTable(ByVal ID As String) As DataTable
If ds.Tables.Contains("Detail") Then
ds.Tables("Detail").Clear()
End If
'SQL query with DataAdapter using ID
Return ds.Tables("Detail")
End Function
The second datagridview (dgv) shows more detailed information about the currently selected record in the other datagridview.
The function is correctly returning a datatable with correct data.
I then do some formating in the datagridview for the new data in the DataSourceChanged event:
Private Sub dgv_DataSourceChanged(sender As Object, e As EventArgs) Handles dgv.DataSourceChanged
FormatDGV(dgv)
End Sub
However, the DataSourceChanged event has stopped triggering since a specific version. In the previous version this works.
However, I've been using this for numerous releases and it's always worked up until now and the code for this is exactly the same in both versions.
In the working version I've verified that the DataSourceChanged event is definitely firing after this line is completed dgv.DataSource = SomeFunctionReturningDataTable(ID).
The same line, with the same function, running in the new version is not triggering the event.
What could possibly have happened to break this?

Updating datasource from datagridview - concurrency violation

I've a DataGridView that has a binding source that's tied to a table sitting on SQL Server .
Upon a user modifying a datagridview cell and tabbing or clicking to another cell, I use the CellEndEdit event to update my DataSource (SQL table).
Private Sub dataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
'****** UPDATING underlying database when user exits cell
EwosappendixbindingSource.EndEdit()
EwosappendixTableAdapter.Update(PIMUserDBDataSet.ewosappendix)
End Sub
As this works well on occasion a user will get a
"concurrency violation: the updatecommand affected 0 of the expected 1 records“” 1
In the cases where the error was thrown, only one user was in the datagridview making a change. They clicked in a cell, modified it's content, and then clicked out of the cell.
With my understanding of what triggers this error, my first question is, why was the error thrown and how can I catch or prevent the error from happening.
thanks,
Jim

Simple, but I'm stuck ....Updating a DataSet using code

I have a simple Windows form in VB: textbox bound thru an adapter and a bindingsource to my dataset.
I have a button that on Click I want it to update the database. The form loads and the first data row shows in the textbox, I change the text then click my button but no update happens.
Any ideas what I'm doing wrong, or how I should do this??
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.AToolsTableAdapter.Fill(Me.Qedsandb_TroyDataSet.aTools)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
AToolsTableAdapter.Update(Qedsandb_TroyDataSet.aTools)
End Sub
End Class
Assuming the click event runs(?), TableAdapters based on a query (a join) do not, by default, have the ability to update the database. The name of your binding source suggests that you are using a query.
MSDN: TableAdapter Overview
The update functionality of a TableAdapter is dependent on how much
information is available based on the main query provided in the
TableAdapter Wizard. For example, TableAdapters that are configured to
fetch values from multiple tables (JOINs), scalar values, views, or
the results of aggregate functions are not initially created with the
ability to send updates back to the underlying database. However, you
can configure the INSERT, UPDATE and DELETE commands manually in the
Properties window.
You don't appear to be moving the data back from the form to the dataset. Try calling EndEdit on your bindingsource.

Object Reference not set to an instance of an object

I have a form which has a search feature - a single text field and command button; when the text field is filled-in a database query is executed and the result (if one result returned) is shown on the form via dynamic control fields.
When the search feature is used for the first time, the fields are created and the data is returned from the database, however when the search feature is re-ran I am getting the error "Object Reference not set to an instance of an object", the error occurs at:
initSearch(txtSearchInput.Text)
I am guessing that I am not handling the textfield properly for this type of use, can anyone please advise how else I should be doing this?
The txtSearchInput is not a dynamic field, it has been created through the design mode, the same for the command button. The above code is located in the command button On Click event:
Private Sub btnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGo.Click
Try
initSearch(txtSearchInput.Text)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error Encountered")
End Try
End Sub
Any help would be greatly appreciated.
Thanks,
Matt
Any help would be greatly appreciated.
The error is not in the code you posted. The Text property of a TextBox, and the reference to a Form Textbox don't become null all of a sudden.
You probably have to debug into initSearch
Did you test in the debugger if txtSearchInput is null?
Exception could be bubbling up from initSearch function, best way is to debug your code.