DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Datagridに関して

  • 題名: Datagridに関して
  • 著者: あかさた
  • 日時: 2003/10/14 10:01:08
  • ID: 925
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
分類:[.NET]

Datagridに関して、Accessを用いて、表示を行っています。
更新ボタンを作成し、OleDataAdapter.fillを用いて、データベースを参照する際、
更新ボタンを押すたびに、一度表示した行をどんどん追加して、表示を行ってしまいます。(下に例をのせます。)
Datagridを更新ボタンを押すたびに、Datagredの内部の初期化を行いたいのですが、
やり方がわかりません。
どなたか教えてください。


例:
番号 名前
0001 まこと
0002 ゆうじ
  ↓(更新ボタンをおすと。)
番号 名前
0001 まこと
0002 ゆうじ
0001 まこと
0002 ゆうじ
  ↓
以下どんどん追加されていきます。
■No925に返信(あかさたさんの記事)
> Datagridに関して、Accessを用いて、表示を行っています。
> 更新ボタンを作成し、OleDataAdapter.fillを用いて、データベースを参照する際、
> 更新ボタンを押すたびに、一度表示した行をどんどん追加して、表示を行ってしまいます。(下に例をのせます。)
> Datagridを更新ボタンを押すたびに、Datagredの内部の初期化を行いたいのですが、
> やり方がわかりません。
> どなたか教えてください。
> 
重複する状態を再現できないので原因は、なんともですが
以下の方法でDataGridを初期化できます。

        Me.DataGrid1.DataSource = Nothing
        Me.DataGrid1.DataMember = ""
        Me.DataGrid1.Refresh()

初期化後にDataSourceとDataMemberを再設定し、Refreshしても
現象が変わらなければOleDataAdapterの使い方に原因があるのかも
しれませんね。
■No931に返信(fukuさんの記事)

>>Datagridに関して、Accessを用いて、表示を行っています。
>>更新ボタンを作成し、OleDataAdapter.fillを用いて、データベースを参照する際、
>>更新ボタンを押すたびに、一度表示した行をどんどん追加して、表示を行ってしまいます。(下に例をのせます。)
>>Datagridを更新ボタンを押すたびに、Datagredの内部の初期化を行いたいのですが、
>>やり方がわかりません。
>>どなたか教えてください。
>>
> 重複する状態を再現できないので原因は、なんともですが
> 以下の方法でDataGridを初期化できます。
>
> Me.DataGrid1.DataSource = Nothing
> Me.DataGrid1.DataMember = ""
> Me.DataGrid1.Refresh()
>
> 初期化後にDataSourceとDataMemberを再設定し、Refreshしても
> 現象が変わらなければOleDataAdapterの使い方に原因があるのかも
> しれませんね。
>
>

お返事ありがとうございます。

Refresh()を行った後、もう一度DataSourceとDataMemberを設定し、
OleDbDataAdapter1.fillを用いて、再表示をおこないましたが、
同じ現象が起こってしまいました。

原因がわからないので、なんともいえませんが…
■No932に返信(あかさたさんの記事)
> お返事ありがとうございます。
>
> Refresh()を行った後、もう一度DataSourceとDataMemberを設定し、
> OleDbDataAdapter1.fillを用いて、再表示をおこないましたが、
> 同じ現象が起こってしまいました。
>
> 原因がわからないので、なんともいえませんが…
>
OleDataAdapter.fillまでの流れが分かれば、もう少し調べられるのですが
1、最初にどのようのDataGridへセットしているか
2、DataGrid上でデータの編集を行っているか
3、編集している場合、OleDbDataAdapterのUpdateメソッドを実行しているか
などでしょうか?
または、OleDbDataAdapterコントロールを使わずに自分でカリカリ
クラスを使用してロジックで行って比較して見るのも原因解明の手段の
一つかな〜っと思ってます。
  • 題名: Re[4]: Datagridに関して
  • 著者: あかさた
  • 日時: 2003/10/15 9:38:47
  • ID: 936
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
2003/10/15(Wed) 11:25:48 編集(投稿者)
2003/10/15(Wed) 11:25:41 編集(投稿者)

> OleDataAdapter.fillまでの流れが分かれば、もう少し調べられるのですが
> 1、最初にどのようのDataGridへセットしているか
> 2、DataGrid上でデータの編集を行っているか
> 3、編集している場合、OleDbDataAdapterのUpdateメソッドを実行しているか
> などでしょうか?
> または、OleDbDataAdapterコントロールを使わずに自分でカリカリ
> クラスを使用してロジックで行って比較して見るのも原因解明の手段の
> 一つかな〜っと思ってます。
>

お返事ありがとうございます。解決しました。
OleDbDataadapter1.fillで更新を行う前に、
DataSet11.clear()
を実行しなければ、クリアーされないみたいでした。
どうもありがとうございました。

回答にありました質問については
1.DataGridへはプロパティ上でDataSourceとDataMemberを設定しています。
2.DataGrid上ではデータの編集はまだ行っていない状態です。
あくまで更新ボタンを作って、更新させてDBを見るだけです。
3.Updateメソッドは使用してません。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板