[dba-VB] C# Grid: effectively and efficiently handle dirty

jwcolby jwcolby at colbyconsulting.com
Thu Jan 20 14:38:58 CST 2011


Interesting (and sticky) the form closing does not fire if the main application is closed.

I added a saveEdits in the formclosing event (as you indicate) which works if the user clicks the 
check box in the form that the edit is happening in.  IOW edit something then instead of moving to 
another line, they just close the form.  In that case the closing event fires.  However that closing 
event does not fire if the user closes the entire application.

Is there a form lostfocus?

John W. Colby
www.ColbyConsulting.com

On 1/20/2011 3:01 PM, Shamil Salakhetdinov wrote:
> 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
>
> _______________________________________________
> dba-VB mailing list
> dba-VB at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-vb
> http://www.databaseadvisors.com
>
>



More information about the dba-VB mailing list