4

2 つの DataView を一緒に追加して、Repeater にバインドできる 1 つの Dataview を作成する必要があります。

他の誰かの API にプラグインしているので、SQL レベルでデータを取得する方法を変更できません。

だから本質的に私はこれをしたい:

DataView dView1 = getActiveModules();
DataView dView2 = getInactiveModules();

ModuleView = dView1 + dView2;

rptModules.DataSource = ModuleView.Tables[0];
rptModules.DataBind();

ビューの 2 つのスキーマは同じで、アクティブなモジュールと非アクティブなモジュールを取得するだけです。

何か案は?

ありがとう。

4

2 に答える 2

6

次のようにデータビューをマージできます...

System.Data.DataView dv = new System.Data.DataView();
System.Data.DataView dv1 = new System.Data.DataView();
dv.Table.Merge(dv1.Table);
于 2010-06-22T04:39:13.603 に答える
3

2 つのビュー (データ テーブル) を 1 つのデータ テーブルに簡単に結合/マージできます。

構文例

    Dim a As DataView
    Dim b As DataView

    a.Table.Merge(b.Table)

    Dim c As New DataView
    c.Table.Merge(a.Table) 'might generate error because c.Table is null

http://msdn.microsoft.com/en-us/library/system.data.datatable.merge.aspxから

DataTable.Merge メソッド 指定された DataTable を現在の DataTable とマージします。

Merge メソッドは、ほぼ類似したスキーマを持つ 2 つの DataTable オブジェクトをマージするために使用されます。通常、マージはクライアント アプリケーションで使用され、データ ソースからの最新の変更を既存の DataTable に組み込みます。これにより、クライアント アプリケーションは、データ ソースからの最新のデータで更新された DataTable を持つことができます。

マージ操作では、元のテーブルとマージされるテーブルのみが考慮されます。子テーブルは影響を受けず、含まれません。テーブルにリレーションシップの一部として定義された 1 つ以上の子テーブルがある場合、各子テーブルを個別にマージする必要があります。

于 2010-06-22T04:38:47.070 に答える