- PR -

DataGridViewとDataSetで行追加した時に2行表示されるのですが

1
投稿者投稿内容
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-04-07 16:55
DataGridView 上に、番号・名称の桁があるとして、末尾の行(新しい行)の番号項目
に番号の値を入力した際に、DataGridView_CellBeginEdit イベントにて、以下のコ
ードを実行しています。

コード:
DataSet d = this.MyTableBindingSource.DataSource;
d.MyTable.AddMyTableRow((int)入力された番号, "名前の初期値");
d.MyTableTableAdapter.Update(d.MyTable);



すると DataGridView の画面の末尾に、今しがた入力した行が2行表示されます。
こんな感じです。

コード:

1.初期状態
・−・−−−−−・−−−−−−−−−−・
| |番号   |名称        |
・−・−−−−−・−−−−−−−−−−・
| |    10|カップラーメン   |
・−・−−−−−・−−−−−−−−−−・
| |    20|カップやきそば   |
・−・−−−−−・−−−−−−−−−−・
| |    30|カップうどん    |
・−・−−−−−・−−−−−−−−−−・
| |    40|カップスープ    |
・−・−−−−−・−−−−−−−−−−・
|*|     |          |
・−・−−−−−・−−−−−−−−−−・

2.入力している最中
・−・−−−−−・−−−−−−−−−−・
| |番号   |名称        |
・−・−−−−−・−−−−−−−−−−・
| |    10|カップラーメン   |
・−・−−−−−・−−−−−−−−−−・
| |    20|カップやきそば   |
・−・−−−−−・−−−−−−−−−−・
| |    30|カップうどん    |
・−・−−−−−・−−−−−−−−−−・
| |    40|カップスープ    |
・−・−−−−−・−−−−−−−−−−・
| |    55|          |←元々*だった行。55と入力した。
・−・−−−−−・−−−−−−−−−−・
|*|     |          |←何か文字を入力した時点で1行増える。
・−・−−−−−・−−−−−−−−−−・


3.入力が終わったところ(Enter or 他のセルへ移動)
・−・−−−−−・−−−−−−−−−−・
| |番号   |名称        |
・−・−−−−−・−−−−−−−−−−・
| |    10|カップラーメン   |
・−・−−−−−・−−−−−−−−−−・
| |    20|カップやきそば   |
・−・−−−−−・−−−−−−−−−−・
| |    30|カップうどん    |
・−・−−−−−・−−−−−−−−−−・
| |    40|カップスープ    |
・−・−−−−−・−−−−−−−−−−・
| |    55|          |
・−・−−−−−・−−−−−−−−−−・
| |    55|          |←この行が余計。
・−・−−−−−・−−−−−−−−−−・
|*|     |          |
・−・−−−−−・−−−−−−−−−−・



どうすれば、2行になるのを防げるのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-07 17:05
引用:

R・田中一郎さんの書き込み (2006-04-07 16:55) より:

末尾の行(新しい行)の番号項目に番号の値を入力した際に、


この時点で 1 行追加。

引用:

DataGridView_CellBeginEdit イベントにて、以下のコードを実行しています。

d.MyTable.AddMyTableRow((int)入力された番号, "名前の初期値");


ここでも 1 行追加されているからじゃないでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-04-07 17:40
DataSetとDataGridViewは、どちらかに変更があったら
お互いに同期とってくれるので明示的に追加する必要とか
無いんですよ。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-04-07 18:17
引用:

Kazukiさんの書き込み (2006-04-07 17:40) より:
DataSetとDataGridViewは、どちらかに変更があったら
お互いに同期とってくれるので明示的に追加する必要とか
無いんですよ。



そうだったんですか。
実は先日、型付DataSetが便利だと聞いて使ってみているわけですが、更新や削除関係
の処理は自分で書くのだと勘違いして、イベントを捕まえて追加・更新・削除処理ま
で一気に書いてしまいました。orz

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)