Batch Insert/Updates

  • Thread starter Thread starter Dimitris Milonas
  • Start date Start date
D

Dimitris Milonas

Hello to all,

I would like to inserts/delete some records from a table and Update the
DataAdapter at the end of all the operations. The problem is that I would
like the intermediate changes to be visible in the User Interface (i.e.
DetailView). I am using the following code:

DataRow DataRow1 = DataSet1.Tables["Table1"].NewRow();

DataRow1["CODE"] = "...";
DataRow1["NAME"] = "...";

DataSet1.Tables["Table1"].Rows.Add(DataRow1);

At this point the new row is not visible to the User Interface. That means
that I have to Update the DataAdapter
(DataAdapter1.Update(DataSet1,"Table1")) in order for the new row to be
visible to User Interface. Is there a way the changes to be visible to the
User Interface before Update the DataAdapter?

Thanks in advance
Dimitris Milonas
 
Manimpulating RowState will do it for you. When you call Update, it calls
AcceptChanges on each row as the row is updated. I'm not familiar with the
Details view but you could just call AcceptChanges on the row and it would
be in the same state is if you called Update.

The question is why it's showing. I suspect that once you call Update, the
SELECT query is firing again and that's why it's now visible. Do you hvae
the Refresh Dataset option on when you call Update?
 
Hello and thank you for your answer.

I don't understand what do you mean by "Manipulating RowState". The problem
is not whether to call the AcceptChanges for each row or to call the Update
method in order to submit the inserts. The problem is that if I insert a new
record then this record is visible in the user interface only if I call the
Update method (or the Row.AcceptChanges). If I don't call the Update method
then the new row is not visible to the user interface. This situation is an
obstacle in inserting two or more rows and updating the database at the end.
It is common practice in desktop applications when there is a master-detail
relationship between two tables, to update both tables at the same time and
not post changes to the detail table and cancel changes to the master table.
That is what I want to implement.

Regards
Dimitris Milonas


W.G. Ryan said:
Manimpulating RowState will do it for you. When you call Update, it calls
AcceptChanges on each row as the row is updated. I'm not familiar with
the Details view but you could just call AcceptChanges on the row and it
would be in the same state is if you called Update.

The question is why it's showing. I suspect that once you call Update, the
SELECT query is firing again and that's why it's now visible. Do you hvae
the Refresh Dataset option on when you call Update?
Dimitris Milonas said:
Hello to all,

I would like to inserts/delete some records from a table and Update the
DataAdapter at the end of all the operations. The problem is that I would
like the intermediate changes to be visible in the User Interface (i.e.
DetailView). I am using the following code:

DataRow DataRow1 = DataSet1.Tables["Table1"].NewRow();

DataRow1["CODE"] = "...";
DataRow1["NAME"] = "...";

DataSet1.Tables["Table1"].Rows.Add(DataRow1);

At this point the new row is not visible to the User Interface. That
means that I have to Update the DataAdapter
(DataAdapter1.Update(DataSet1,"Table1")) in order for the new row to be
visible to User Interface. Is there a way the changes to be visible to
the User Interface before Update the DataAdapter?

Thanks in advance
Dimitris Milonas
 
Back
Top