By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,939 Members | 1,602 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,939 IT Pros & Developers. It's quick & easy.

Finding the index of the DataRow to update?

P: n/a
I've got a strongly-typed dataset with 2 related tables in it ("Staff"
and "Roles"). I want to make a change to the parent Staff row and also
to its child Role row. I'm having difficulty figuring out the best way
to do this.

First question:
I can get myself a new instance of a row and make changes to it, but
presumably that's then a separate object from the original dataset
row. How do I reconcile my changes back to the dataset?

Second question:
Because I haven't figured out the answer to the above, I'm updating
the rows directly in the dataset. But in order to find which row to
update, I'm having to do something which looks really complicated (see
code snippet below).

It can't be that difficult! But the MSDN examples are no help at all -
they simply refer to the required row using an absolute value:
dataset1.Tables["Customers"].Rows[4]["CompanyName"] = "Wingtip Toys";
How much use is that in The Real World?! Not much - what I need to
know is, how to dynamically find that value 4 in the example.

Any help would be much appreciated. Thanks very much. Here's the code
snippet:

//find the index of the Staff row to update (where StaffID=_staffID):
UserDataSet.StaffRow[] staffRows=this.GetStaffRowsxMany();
int i=0, rowID=0;
foreach(UserDataSet.StaffRow dr in staffRows)
{
if(dr.StaffID==_staffID)
rowID=i;
i++;
}

//update the staff datarow with the new values:
_dsUserData.Staff[rowID].Firstname=<some value>;

etc. then I do the same for the child table (Role) rows:

//find the index of the child Role row to update (where
StaffID=_staffID)
i=0;
int roleRowID=0;
foreach(UserDataSet.RolesRow rr in
_dsUserData.Staff[rowID].GetRolesRows())
{
if(rr.StaffID==_staffID)
roleRowID=i;
i++;
}

//update the Role datarow with the new values:
_dsUserData.Roles[roleRowID].GroupID=<some value>

etc ...
Nov 18 '05 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.