CreateChildView() vs DataTable.Select() on entire table

B

bfking

Can anyone shed some light on why DataRowView.CreateChildView() would
significantly slower than DataTable.Select()?

my DataSet looks like this
DataSet ds; //ds assignment code left out for simplicity
ds.Tables["IDs"].PrimaryKey = new DataColumn[]{
ds.Tables["IDs"].Columns["ID"] };
ds.Tables[0].PrimaryKey = new DataColumn[]{ ds.Tables[0].Columns["ID"],
ds.Tables[0].Columns["STID"] };

ds.Relations.Add("myRelation", ds.Tables["IDs"].PrimaryKey, new
DataColumn[] {ds.Table[0].Columns["ID"]});

ds.Tables["IDs"] was created from Unique ID's in ds.Tables[0]..

then when looping ds.Tables["IDs"].DefaultView...

DataView dv = myDataRowView.CreateChildView("myRelation");

is slower than...

DataRow[] drs =
myDataRowView.DataView.Table.DataSet.Table[0].Select(string.format("ID
= '{0}'"), myDataRowView["ID"});

with 3000 rows in Table[0], i have a piece of code that takes 10-11
secs to run using CreateChildView() vs .05 secs using Select().

i would just use the Select() method, but i lose the ability to use
BoundFields in a GridView (and also Eval in the TemplateFields. i have
to cast the DataItem each time i want to access a field in the DataRow)

any advise would be greatly appreciated.

thanks,
bk
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top