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

DataGridの初期化について

環境/言語:[WindowsXP,VisualStudio.NET2003,.NET Framework1.1]
分類:[.NET]

いつも参考にさせていただいております。
さて、表題の件について質問がございます。
非常に初歩的な質問かとは思いますが、よろしくお願いいたします。

今現在、以下のような処理をしていています。
処理は正常に行われていて、DataGridにクエリの結果が表示されています。

OracleCommand1.CommandText = "select * from test"
OracleDataAdapter1.SelectCommand = OracleCommand1
'データセットにデータを取得する
OracleDataAdapter1.Fill(DataSet1)
'DataGridにデータを表示する
DataGrid1.DataSource = DataSet1.Tables(0)
'DataTableの行数の取得
Dim dt As DataTable = CType(DataGrid1.DataSource, DataTable)

ここで質問なのですが、
ボタンを押して2度目の結果を取得しようとすると、
1度目の結果+2度目の結果となってしまうので困っています。
1度目の結果をクリアして2度目の結果のみを表示したいと思っています。

データ取得後のDataGridを初期化するにはどうしたらよいのでしょうか。
ClearメソッドやResetメソッドのようなものがあるのでしょうか?

ご回答のほど、よろしくお願いいたします。
> ClearメソッドやResetメソッドのようなものがあるのでしょうか?

同じような事例を経験したことがありますが、私はClearメソッドを使っています。
文字通りデータをクリアするメソッドです。
Resetメソッドもありますが、私は使ったことはありません。
>TrueColorsさん
さっそくレスを頂きましてありがとうございました。

> 同じような事例を経験したことがありますが、私はClearメソッドを使っています。

こちらの件についてですが、DataGridには直接Clearメソッドが見当たりませんでした。
どの様にして解決されたか、もう少し具体的にお伺いできませんでしょうか。
よろしくお願いいたします。
■No5883に返信(SASYAさんの記事)
> >TrueColorsさん
> さっそくレスを頂きましてありがとうございました。
>
>>同じような事例を経験したことがありますが、私はClearメソッドを使っています。
>
> こちらの件についてですが、DataGridには直接Clearメソッドが見当たりませんでした。
> どの様にして解決されたか、もう少し具体的にお伺いできませんでしょうか。
> よろしくお願いいたします。

ご自分で、オブジェクトブラウザで調べてみてはいかがですか?
DataGridには、Clear()メソッドおよびReset()メソッドはないですね。
で、DataTable, DataTableCollection, Datasetにはあるようですが...

> 1度目の結果+2度目の結果となってしまうので困っています。
> 1度目の結果をクリアして2度目の結果のみを表示したいと思っています。

自分はこういう事例をやったことがなくてわかりませんが、
どれかをClear()すれば結果内容がマージされることはなくなんじゃないでしょうか。
(注意:想像でモノを言ってます)
>java.lang.Nullpoさん
ご指摘ありがとうございました。自分で調べる姿勢が欠如していたと思います。

色々と試行錯誤してみた結果、最初に
DataSet1.Clear()
と書くだけで、問題は解決いたしました。

レス頂いたかたありがとうございました!
解決済み!

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