Calculated Fields in Strongly Typed DataSets?

  • Thread starter Thread starter Tore
  • Start date Start date
T

Tore

We have an XSD schema/object graph that for the most part reflects our
database. I'm running into an issue where this granularity doesn't always
match the need for using data from multiple datatables. For example, I have
a master datatable with several detail datatables, and I would like to
create (declare if I can) a "composite" containing column values from the
master, as well as columns from other datatables along with aggregate values
of data in yet other datatables.

In reality, this resulting data will be displayed in a grid (one column will
be updatable) and consurrently bound to other controls.

If I was writing stored procedures and handcoding every operation, this
would be quite straight forward, but I am trying to work with the object
graph/schema approach.

Is there a way to do this in the schema itself?

What would be the best way to achieve this? Would I need to create derived
DataViews and programmatically add expression columns? And would I have to
implement the "external" accesses in event handlers?

TIA,
Tore.
 
Though there is calculated field support built in DataTable (through
DataColumn.Expression) I would recommend to:
- add necessary column(s) do DataTable
- handle updating yourself (using RowChanged/ColumnChanged) events
 
I am aware of the Expression property, but I was trying to implement
something (declaratively) at the XSD schema level. Is this possible and if
so, how?

If not, I suppose my closest approach would be to add the columns to the
schema, and make them Expression columns in code before filling the dataset.

Why do you recommend against using the DataColumn.Expression approach?

Thanks,
Tore.

Miha Markic said:
Though there is calculated field support built in DataTable (through
DataColumn.Expression) I would recommend to:
- add necessary column(s) do DataTable
- handle updating yourself (using RowChanged/ColumnChanged) events

--
Miha Markic [MVP C#]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

Tore said:
We have an XSD schema/object graph that for the most part reflects our
database. I'm running into an issue where this granularity doesn't always
match the need for using data from multiple datatables. For example, I
have
a master datatable with several detail datatables, and I would like to
create (declare if I can) a "composite" containing column values from the
master, as well as columns from other datatables along with aggregate
values
of data in yet other datatables.

In reality, this resulting data will be displayed in a grid (one column
will
be updatable) and consurrently bound to other controls.

If I was writing stored procedures and handcoding every operation, this
would be quite straight forward, but I am trying to work with the object
graph/schema approach.

Is there a way to do this in the schema itself?

What would be the best way to achieve this? Would I need to create
derived
DataViews and programmatically add expression columns? And would I have
to
implement the "external" accesses in event handlers?

TIA,
Tore.
 
Nevermind - I found it.

<xs:element name="ComputedData" type="xs:int" minOccurs="0" nillable="0"
msprop:nullValue="_null"
msdata:Expression="Count(Related.RelatedPKColumn)" />


Tore.

Tore said:
I am aware of the Expression property, but I was trying to implement
something (declaratively) at the XSD schema level. Is this possible and if
so, how?

If not, I suppose my closest approach would be to add the columns to the
schema, and make them Expression columns in code before filling the dataset.

Why do you recommend against using the DataColumn.Expression approach?

Thanks,
Tore.

Miha Markic said:
Though there is calculated field support built in DataTable (through
DataColumn.Expression) I would recommend to:
- add necessary column(s) do DataTable
- handle updating yourself (using RowChanged/ColumnChanged) events

--
Miha Markic [MVP C#]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

Tore said:
We have an XSD schema/object graph that for the most part reflects our
database. I'm running into an issue where this granularity doesn't always
match the need for using data from multiple datatables. For example, I
have
a master datatable with several detail datatables, and I would like to
create (declare if I can) a "composite" containing column values from the
master, as well as columns from other datatables along with aggregate
values
of data in yet other datatables.

In reality, this resulting data will be displayed in a grid (one column
will
be updatable) and consurrently bound to other controls.

If I was writing stored procedures and handcoding every operation, this
would be quite straight forward, but I am trying to work with the object
graph/schema approach.

Is there a way to do this in the schema itself?

What would be the best way to achieve this? Would I need to create
derived
DataViews and programmatically add expression columns? And would I have
to
implement the "external" accesses in event handlers?

TIA,
Tore.
 
Nevermind - I found it.

<xs:element name="ComputedData" type="xs:int" minOccurs="0" nillable="0"
msprop:nullValue="_null"
msdata:Expression="Count(Related.RelatedPKColumn)" />


Tore.

Tore said:
I am aware of the Expression property, but I was trying to implement
something (declaratively) at the XSD schema level. Is this possible and if
so, how?

If not, I suppose my closest approach would be to add the columns to the
schema, and make them Expression columns in code before filling the dataset.

Why do you recommend against using the DataColumn.Expression approach?

Thanks,
Tore.

Miha Markic said:
Though there is calculated field support built in DataTable (through
DataColumn.Expression) I would recommend to:
- add necessary column(s) do DataTable
- handle updating yourself (using RowChanged/ColumnChanged) events

--
Miha Markic [MVP C#]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

Tore said:
We have an XSD schema/object graph that for the most part reflects our
database. I'm running into an issue where this granularity doesn't always
match the need for using data from multiple datatables. For example, I
have
a master datatable with several detail datatables, and I would like to
create (declare if I can) a "composite" containing column values from the
master, as well as columns from other datatables along with aggregate
values
of data in yet other datatables.

In reality, this resulting data will be displayed in a grid (one column
will
be updatable) and consurrently bound to other controls.

If I was writing stored procedures and handcoding every operation, this
would be quite straight forward, but I am trying to work with the object
graph/schema approach.

Is there a way to do this in the schema itself?

What would be the best way to achieve this? Would I need to create
derived
DataViews and programmatically add expression columns? And would I have
to
implement the "external" accesses in event handlers?

TIA,
Tore.
 
Back
Top