- - PR -
DataTableの列の追加または削除
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-19 17:32
いつもお世話になっています。
現在DataTableの内容をXmlに出力するプログラムを作成中なのですが、 既存のDataTableの特定の列だけを出力するということを実現したいと思っています。 Xmlへの出力は、 (filePath:ファイル出力先(String)、myDataTable:出力データ(DataTable)) Dim myDataSet As New DataSet myDataSet.Tables.Add(myDataTable) myDataSet.WriteXml(filePath, XmlWriteMode.WriteSchema) という具合です。 列のColumnMappingプロパティを"MappingType.Hidden"に設定すると、 データは出力されないのですが、 スキーマ情報には出力されてしまいます。 そこで、特定の列だけを削除または追加を行って、 出力データを作り直そうと思ったのですが、 この削除または追加の方法がわかりません。 ちなみに追加は下記のように試してみましたがエラーになってしまいました。 Dim myDataTable2 As New DataTable myDataTable2.Columns.Add(myDataTable.Columns(1)) エラーメッセージ: System.ArgumentException' のハンドルされていない例外が system.data.dll で発生しました。 追加情報 : 列 '***' は既に別のデータ テーブルに属しています。 ご教授よろしくお願いします。 | ||||||||
|
投稿日時: 2004-04-19 22:32
諸農です。
これはエラーメッセージが示している通り、追加しようとしたそのカラムは 既に元のテーブルに所属しているからダメだ、という事なんでしょう。 DataTableにはCopy()メソッドがあるので、それを使ってみてはいかがですか? C#で申し訳ないですが。
_________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2004-04-20 13:23
早速のご教授ありがとうございます。
頂いたコードをサンプルに作成したところ、 期待通りに動きになりました。 丁寧なサンプルまで頂き、本当にありがとうございました。 |
1