DOBON.NETプログラミング道掲示板
(現在 過去ログ2 を表示中)
HOME
HELP
新規作成
新着記事
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
[
最新記事及び返信フォームをトピックトップへ
]
[ トピック内全5記事(1-5 表示) ] <<
0
>>
■33807
/ inTopicNo.1)
同じデータセット内にテーブルの複製を作る方法
▼
■
□投稿者/ べが
一般人(1回)-(2018/02/09(Fri) 14:08:24)
環境/言語:[OS : Windows 7 / 言語 : C# / .NET Framework : 4.5]
分類:[.NET]
【解決したい問題】
データセット内にあるテーブルの複製を同じデータセット内に作りたいのですが、うまくいきません。
方法が間違っていると思うのですが、調べても有効な情報が得られませんでした。
ご教授頂ければ有難いです。
【解決するために何をしたか】
データセット「ds」の中にテーブル「dt1」があり、新たに「dt2」を追加して
構造と内容を「dt1」からコピーするため、以下のようなコードを書いたのですが、
DataTable dtTemp = ds.Tables.Add("dt2");
dtTemp = ds.Tables["dt1"].Copy();
ds.Tables["dt2"] = dtTemp.Copy();
3行目の左辺で「プロパティまたはインデクサー'DatatableCollection.this[string]'は読み取り専用なので、
割り当てることはできません。」というコンパイルエラーが出ます。
直接的に「ds.Tables["dt2"] = ds.Tables["dt1"].Copy」にしたり、
先に構造だけコピーを試みてCloneメソッドに変更しても同じでした。
引用返信
削除キー/
編集
削除
■33808
/ inTopicNo.2)
Re[1]: 同じデータセット内にテーブルの複製を作る方法
▲
▼
■
□投稿者/ Hongliang
大御所(540回)-(2018/02/09(Fri) 14:17:03)
DataSetにDataTableを追加する場合は、.Tables.Add(DataTable)を使用します。
なので
> DataTable dtTemp = ds.Tables.Add("dt2");
は不要です。
.Tables[String] で使用する名前は、DataTableのTableNameプロパティです。
.Tablesに格納されるDataTable間でTableNameの重複は許されていないので、.Tables.Addする前に、CopyしたDataTableのTableNameを変更しておきます。
引用返信
削除キー/
編集
削除
■33809
/ inTopicNo.3)
Re[2]: 同じデータセット内にテーブルの複製を作る方法
▲
▼
■
□投稿者/ べが
一般人(3回)-(2018/02/09(Fri) 14:33:30)
回答ありがとうございます。
回答の内容が今一つ理解できないのですが、こういう事でしょうか?
ds.Tables.Add("dt2");
ds.Tables["dt2"] = ds.Tables["dt1"].Copy();
これだと先述のエラーで動きませんし、
ds.Tables["dt1"].Copy();
ds.Tables.Add("dt2");
これだと、当然ながらdt2に何も入りません。
■
No33808
に返信(Hongliangさんの記事)
> DataSetにDataTableを追加する場合は、.Tables.Add(DataTable)を使用します。
> なので
>>DataTable dtTemp = ds.Tables.Add("dt2");
> は不要です。
>
> .Tables[String] で使用する名前は、DataTableのTableNameプロパティです。
> .Tablesに格納されるDataTable間でTableNameの重複は許されていないので、.Tables.Addする前に、CopyしたDataTableのTableNameを変更しておきます。
引用返信
削除キー/
編集
削除
■33810
/ inTopicNo.4)
Re[3]: 同じデータセット内にテーブルの複製を作る方法
▲
▼
■
□投稿者/ 魔界の仮面弁士
大御所(1106回)-(2018/02/09(Fri) 15:01:14)
■
No33809
に返信(べがさんの記事)
>>.Tablesに格納されるDataTable間でTableNameの重複は許されていないので、.Tables.Addする前に、CopyしたDataTableのTableNameを変更しておきます。
> 回答の内容が今一つ理解できないのですが、こういう事でしょうか?
こういうことです。
DataTable dt2 = ds.Tables["dt1"].Copy();
dt2.TableName = "dt2";
ds.Tables.Add(dt2);
引用返信
削除キー/
編集
削除
■33811
/ inTopicNo.5)
Re[4]: 同じデータセット内にテーブルの複製を作る方法
▲
▼
■
□投稿者/ べが
一般人(4回)-(2018/02/09(Fri) 15:52:50)
できました!
予備知識と読解力不足で申し訳ありませんでした。
ありがとうございました。
>
> こういうことです。
>
> DataTable dt2 = ds.Tables["dt1"].Copy();
> dt2.TableName = "dt2";
> ds.Tables.Add(dt2);
解決
済
み!
引用返信
削除キー/
編集
削除
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-