- - PR -
DataColumn の Expression
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-12-11 17:56
はじめまして。
2つのDataTableを含むDataSetがあります。 リレーションを設定し、親となるDataTableに子のColumnを追加したいのですが、 Expressionプロパティを設定する箇所で "位置 1 のトークン'Child'を変換できません。"と怒られてしまいます。 Expressionの指定が間違っているのでしょうか。 dt1 = ds.Tables("Data1") dt2 = ds.Tables("Data2") dt1.ChildRelations.Add("rel", dt1.Columns("Key"), dt2.Columns("Key")) col1 = New DataColumn col1.ColumnName = "hoge" col1.DataType = GetType(String) col1.Expression = "Child.hoge" ←ここでエラー dt1.Columns.Add(col1) どなたかご存知の方、ご教示願います。 | ||||
|
投稿日時: 2003-12-11 18:31
DataTableは、「1つのテーブル」です。また、DataTable単体では「他のテーブルがあるということはわからない」のです。
### データベースやデータセットで「他のテーブル」とリレーションを張れるのは、データベースやデータセットの中に「複数のテーブル」があるからです。「テーブル」の所在を知っているのはテーブルではなく、データベースやデータセットです ### | ||||
|
投稿日時: 2003-12-11 19:48
早速のご回答有難うございます。
データテーブルにはリレーションを設定できないということでしょうか… あれからイロイロと試してみたのですが、 (dsは複数テーブルを含むデータセットです)
リレーションの向きを逆にすると通るんです。 これでいいような気もするのですが、何かスッキリしないので… | ||||
|
投稿日時: 2003-12-11 20:06
見落としてました。。。こんなことできるんだ。。。
日本語変。手直し。 列名の前に Child を付けて、式の中で子テーブル内の列を参照できます。ただし、子のリレーションシップから複数の行が返される可能性があるため、子への参照には集約関数を含める必要があります。 | ||||
|
投稿日時: 2003-12-11 22:32
Jitta様
度々有難うございます。 私も同じところを見ていたのですが、集約関数に関しては見落としていました。 明日早速試してみます。 | ||||
1
