Martin,
Just something how a datatable is working, I think that you than will easily
handle your problem.
A datatable hold rows. All the rows have rowstatuses which have statuses.
This can be deleted, changed new, unchanged (and one other one but for this
not important).
If you do an update all rows with a status deleted, changed and new are
handled, they use than the SQL commands, Delete, Update and Insert. The
nonchanged rows are not handled. The state of the row when it was retrieved
using the select is hold as well in the datarow. This is checked to the
currentstate of the datatabase. If there is a difference between those,
there is a currencyerror.
If the rows are handled correct than the dataadapter.update command has an
inbuild AcceptChanges command. What AcceptChanges does is setting all rows
to unchanged and removes the change information. By that it becomes again
equal to the current state of the database.
Be aware that this is very confusing in your code, if this is true I would
change it as quick as possible.
udt.Item(x).Delete(). I can not find what this means.Be also aware that you
should do deletes in a collection always bottom up, you will become sure in
problem if you don't doe that, because otherwise the position is changing.
I hope that this gives you the information to handle your problem.
Cor
"Martin" <martin@martin.comschreef in bericht
news:B4Tgh.4004$1W1.1256@newsfe4-win.ntli.net...
Quote:
Hi all,
>
This is the situation...
>
DatagridView Control with datasource set to datatable.
>
I want the user to be able to delete x number of rows by selecting a row
with mouse then clicking a 'delete' button.
>
Then user clicks a 'Commit' button to update the database.
>
This is my delete row code:
>
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
If Me.DataGridView1.SelectedRows.Count = 0 Then Exit Sub
Dim x As Integer = bs.Position
udt.Item(x).Delete()
End Sub
>
This is my commit changes code:
>
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
uta.Update(udt)
End Sub
>
The problem is that once I have deleted a row, the datatable and
datagridview become unsynchronized and the selected row in the datagrid
isn't the one that will be deleted from the dataset. (I hope that makes
sense)
>
I can keep things in sync by calling datatable.acceptchanges() after the
row deletion, but then the tableadapter.update() command doesn't write the
changes to the database.
>
Any helpful suggestions will be greatly appreciated. I can post the
complete (simplified) example if it will help.
>
Kind regards,
>
Martin.
>