Paul,
Have you tried using DataSet or DataTable .Merge()? Check out the second Tip from my Tips column in the current .NET Magazine here:
http://www.levelextreme.net/ViewPageArticle.aspx?Session=6F45495A76536D74527A303D203255557039742B6A2B746955644A3873484A793370773D3DWell, actually, let me just copy it here (it's funny because this tip was originally inspired by a post from Mike Cole ... I guess he doesn't remember his own posts <g> ... I elaborated on it a bit for my tip column though):
If you want to create a new DataTable with data from an existing DataTable, you can always use the DataTable.Copy() method. But, what if you want to copy that data (or even a subset of that data) to another existing DataTable? Here's an easy trick:
DataRow[] rows;
rows = MyOldTable.Select();
MyDataSet.Merge(rows);
string FilterSubset = "code = '4'";
rows = MyOldTable.Select(FilterSubset);
MyDataSet.Merge(rows);
Unfortunately, there is one drawback to this approach ... this signature of the .Merge() method is only supported by DataSet (in other words, you can't use the DataTable.Merge() method).
But, if you're using Visual Studio 2005 ... then no worries mate! There's the new .ToTable() method to the rescue!
DataTable dtCopy = MyOriginalTable.DefaultView.ToTable();
MyNewTable.Merge(dtCopy);
~~Bonnie
>>Paul... you said Cursor, do you mean datatable?
>
>Yeah, both of them are datatable (I was justing using two different terms to help differenciate between them in my post).
>
>I think I've got this resolved, but if there is a built-in way I'd love to hear it. I'm essentially just iterating through the columns of the SQL DataTable and grabbing the column name, then checking to see if there is a matching column in my XML DataTable. If there is, I copy the value over.
>
>I'm also not entirely sure why SetModified() is required - I would have expected this to get set as soon as I modified the value.
>
>
>drMatch[0].SetModified();
>
>foreach (DataColumn column in dtPortal.Columns)
>{
> DataColumn xmlColumn = dt.Columns[column.ColumnName];
> if (xmlColumn != null)
> {
> drMatch[0][column.Ordinal] = row[xmlColumn.Ordinal];
> }
>}
>