C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: bindingSource内のレコードを複製したい


(過去ログ 68 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■39552 / inTopicNo.1)  bindingSource内のレコードを複製したい
  
□投稿者/ らる (5回)-(2009/08/10(Mon) 22:23:26)

分類:[C#] 

2009/08/10(Mon) 22:25:16 編集(投稿者)

お世話になります。
現在、MDBテーブルのエントリ画面を作成しています。
画面上半分はDataGridViewを配置、下半分に詳細入力用のコントロール郡
(テキストボックスやコンボボックスなど)を配置した画面構成にしています。

DataGridViewと詳細入力用コントロールはbindingSourceを介してデータセット
に接続しています。

ここで、データグリッドであるセルを選択した状態で「複製追加」
というボタンを押すと、新規レコードを作成して、そのレコードに選択していた
レコードの内容を初期値でセットする、という機能を追加したいのです。

ためしに以下のようにソースを書いてみました。

//現在の選択中のレコードを取得
DataRowView drv = (DataRowView)dataGridView1.CurrentRow.DataBoundItem;
//新規レコードを作成
bindingSource1.AddNew();
//新規レコードを取得
DataRowView r = (DataRowView)this.bindingSource1.Current;
//新規レコードに初期選択レコードの内容をコピー
for (int i = 0; i < drv.Row.ItemArray.Count(); i++)
{
r.Row.ItemArray[i]= drv.Row.ItemArray[i];
}

上記のような感じで値がコピーできないかなぁと思ったのですが。
実行時にエラーはでませんが、処理実行後に詳細編集用のコントロールに値がセット
されません。

フィールド数が多いテーブルなどでは新規レコード作成時に他のレコードから複製
を作ってから編集を加えるほうが便利、ということもあり、是非とも実現したいのですが。

どのような方法で実装すればいいでしょうか。
ご教示のほど、よろしくお願いしますm(__)m。


引用返信 編集キー/
■39601 / inTopicNo.2)  Re[1]: bindingSource内のレコードを複製したい
□投稿者/ らる (6回)-(2009/08/11(Tue) 13:08:58)
お世話になります
同方法ではうまくできそうにないので、全てのコントロール(テキストボックスやコンボなど)の値をobject配列変数に保存して、AddNew後に展開する方法で対応しました。


解決済み
引用返信 編集キー/
■39603 / inTopicNo.3)  Re[1]: bindingSource内のレコードを複製したい
□投稿者/ みきぬ (598回)-(2009/08/11(Tue) 13:21:37)
BindingSource.AddingNew イベントをハンドルして、処理の中でイベントデータの AddingNewEventArgs. NewObject プロパティに初期データをセットしてあげればいけるかも。

ただし勘です。うまくいかなかったらスマソ
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -