Shamil Salakhetdinov
shamil at smsconsulting.spb.ru
Thu Jan 20 14:01:51 CST 2011
Hi John --
So you use VS2008 (at least) and you have a "datasheet form" - a bound
DataGridView with BindingNavigator bound to ADO.NET dataset etc.?
If yes - BindingNavigator has CurrentChanged event, which if fired as soon
as you move to the other grid's row.
When form is closing FormClosing event is fired:
private void shipperBindingSource_CurrentChanged(object sender, EventArgs e)
{
saveEdits();
}
private void saveEdits()
{
this.Validate();
this.shipperBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.northwindNETDataSet1);
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
DataRowView row = shipperBindingSource.Current as DataRowView;
if (row.Row.RowState == DataRowState.Modified) saveEdits();
}
Thank you.
--
Shamil
P.S. I must note I rarely work with bound forms and ADO.NET datasets - just
my preference but they should be OK in your context of small "quick&dirty"
(first version) apps...
-----Original Message-----
From: dba-vb-bounces at databaseadvisors.com
[mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: 20 ?????? 2011 ?. 20:52
To: VBA
Subject: [dba-VB] C# Grid: effectively and efficiently handle dirty
I am doing C# forms, bound to SQL Server. I dragged and dropped the table
out onto the form and C# "installed" the grid as well as a record navigation
toolbar.
Now I am trying to make sure that data is saved. I have discovered for
example that if you edit something and just close the form... no save.
Basically no save unless the save button is pressed.
Being the anal guy I am, this ain't good enough. I don't want to save after
every cell edit, but I do want to save after every row edit or when the form
closes. Even this is non-trivial.
After browsing the internet and seeing what others are doing (lots of pain
expressed), my strategy is to have a RowDirty set by the
CellContentsModified but to be honest, things just aren't working as
expected. The row leave isn't fired if I sink the CellModified (or
something). All I can see for sure is that, while one would expect the row
leave to fire if a row is left (makes sense to me) that isn't true and so
now I am left with trying to figure out what zany rules exist.
So here I am, hat in hand, asking the list "how do you do this"?
--
John W. Colby
www.ColbyConsulting.com