- PR -

GridViewからのDataSet取得

投稿者投稿内容
32WH
会議室デビュー日: 2006/08/03
投稿数: 15
投稿日時: 2006-08-10 14:38
毎度お世話になります。

ASP.net(VB2005)
SQLServer(2005)
を使用して開発しております。

SQLを発行して取得したデータをDataSetから
GridViewへバインドして表示しているのですが、
GridViewで編集したデータをDataSetに格納することは出来ないのでしょうか?

編集後のデータに対して、行の消し込み、追加等を
GridViewのCommandを使わずに行いたいのです。

どなたか、ご存知の方がいらっしゃいましたら、
ご教授願います。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-08-10 16:23
自分でDataSetを作っておいて、それをGridViewにバインドしているなら
そのDataSetをそのまま使えばいいと思うのですが。。。
もしかしてDataSetを自分で作っているのではなく、SqlDataSourceあたりで
つないでますか?
その場合は基本的には無理じゃないかと思います。
32WH
会議室デビュー日: 2006/08/03
投稿数: 15
投稿日時: 2006-08-10 16:35
どっとねっとふぁん様

ご回答ありがとうございます。

引用:

自分でDataSetを作っておいて、それをGridViewにバインドしているなら
そのDataSetをそのまま使えばいいと思うのですが。。。
もしかしてDataSetを自分で作っているのではなく、SqlDataSourceあたりで
つないでますか?
その場合は基本的には無理じゃないかと思います。



今回はSqlDataAdpterとSqlCommandを使用し、
AdapterのFillメソッドでデータセットを生成したものを
GridViewのデータソースとして使用しています。

ですが、画面上で編集を加えられたデータを取得するには
生成したタイミングのデータセットの内容とは違うため、
GridViewからDataSetが取得できればと思った次第です。

上記の内容を満たすアイデアがあればご教授願います。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-08-10 16:53
GridViewのDataSourceプロパティは読み取り専用じゃないですから、ここから取り出せる
ObjectをDataSetにキャストするだけでいいんじゃないですか?
32WH
会議室デビュー日: 2006/08/03
投稿数: 15
投稿日時: 2006-08-10 23:15
どっとねっとふぁん様
度々の回答ありがとうございます。

引用:

どっとねっとふぁんさんの書き込み (2006-08-10 16:53) より:
GridViewのDataSourceプロパティは読み取り専用じゃないですから、ここから取り出せる
ObjectをDataSetにキャストするだけでいいんじゃないですか?



当初はそれで出来るのではないかと思い、
DataSetObj = CType(GridView1.DataSource, DataSet)
のような形で実装したのですが、
GridView1.DataSourceがNothingになっているため、
内容を取得する事が出来ませんでした…

DataBindのやり方等で取れることがあるのでしょうか?
もし、ご存知であればご教授ください。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-08-11 01:55
引用:
SQLを発行して取得したデータをDataSetから
GridViewへバインドして表示しているのですが、
GridViewで編集したデータをDataSetに格納することは出来ないのでしょうか?

編集後のデータに対して、行の消し込み、追加等を
GridViewのCommandを使わずに行いたいのです。

DataSetに格納することが目的でなく編集後のデータに対して、行の消し込み、追加等を
(DBに対してってことですよね)行うのが目的ならSqlDataSourceを使うとかなり楽ですよ。

「GridViewのCommand」というのはInsertとかUpdateとかある(RowCommandイベントが発生するやつ)
あれですか?何故「使わずに」なのですか?(私もDataSetに格納する方法はしりませんが)
32WH
会議室デビュー日: 2006/08/03
投稿数: 15
投稿日時: 2006-08-11 10:24
べる様
毎回のご回答有難うございます。

引用:

べるさんの書き込み (2006-08-11 01:55) より:
DataSetに格納することが目的でなく編集後のデータに対して、行の消し込み、追加等を
(DBに対してってことですよね)行うのが目的ならSqlDataSourceを使うとかなり楽ですよ。



上記についてですが、
画面上で編集したデータは画面上にある[登録]ボタンを押下しない限り
反映しないようなイメージです。
なので、SqlDataSourceを使う事が出来ません…。

引用:

「GridViewのCommand」というのはInsertとかUpdateとかある(RowCommandイベントが発生するやつ)
あれですか?何故「使わずに」なのですか?(私もDataSetに格納する方法はしりませんが)



はい、まさしくその[あれ]なのですが、画面のレイアウト上、
Commandボタンは使いたくないって言うのが、要望なので…
出来る限りはその要望にかなう形で作成したいと思っております。

やはり、できないのですかねぇ〜
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-08-11 10:37
> DataSetObj = CType(GridView1.DataSource, DataSet)
> のような形で実装したのですが、
> GridView1.DataSourceがNothingになっているため、
> 内容を取得する事が出来ませんでした…

んー。
どのような実装をされているのかが詳しくはわからないので、何が起きてるのか
推測もできませんね。
重要な部分のソースコードを出してもらうのがいいかなぁ。。。

ちなみに、表示はともかく、その後の画面上での修正作業はある程度動いてるんでしょうか。

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