- - PR -
ページ内で複数DataGridの編集後、一括更新したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-09-04 20:46
こんばんわ。
1ページ内に複数のDataGridを作成し、DataGrid_EditCommandを使用して、データを更新(このときはデータベースに反映したくないのです。)、その後、複数のDataGridを更新し、 ページ内にある ”データベースに書き込み!”なるボタンにて複数のDataGridのデータを一括に更新したいのですが、こういうことって技術的に可能なのでしょうか? ご教授、宜しくお願いいたします。 | ||||
|
投稿日時: 2003-09-05 08:41
可能です。・・・だけでいいのでしょうか?
「データベースに書き込み!」ボタンでサーバに制御が戻ってきますから(って、ASP.NETですよね?)、そのときに2つのDataGridにバインドしているテーブルなりデータセットを、DataAdapter経由でUpdateします。・・・でいいですか? DataGridを修正しても、データベースには反映されていません、念のため。 | ||||
|
投稿日時: 2003-09-05 16:57
Jittaさん、ご返答ありがとうございます。
UpdateCommand内で、以下のようなコードを書いていますが、どうもうまくいきません。 オブジェクト参照がオブジェクト インスタンスに設定されていません。というエラーが表示されてしまいます。 'データセット内のデータを更新 dataset.Tables("Table").Rows(dataGrid.EditItemIndex).Item("Item") = "Data" BindDataGrid Private Sub BindDataGrid() With dataGrid .DataSource = dataset.Tables("Table") .DataBind() End With End Sub | ||||
|
投稿日時: 2003-09-08 09:39
このエラーの意味は理解されていますか? おそらく、 dataset.Tables("Table").Rows(dataGrid.EditItemIndex).Item("Item") = "Data" この行で発生していると思いますが、この行にブレークポイントをつけ、デバッグ実行して止まったらdatasetをポイントしてみてください。nothingではないですか?datasetを、クラス変数にしていても、Webアプリケーションではイベントが発生するごとに新しいインスタンスが作られるので、クラス変数が初期化されてしまいます。イベントを通して保持しておきたい値は、Session変数か、Application変数に格納しなければなりません。または、ビューステートに入れ込むか。そのように修正してみてください。 | ||||
|
投稿日時: 2003-09-10 22:29
Jittaさん、ご返信ありがとうございます。
すみません私、初心者なのもので・・・。 データをロードした時に Session("Dataset") = Dataset として、データセットのセッションを作成しました。 その後、データのUpdateCommand内で Dim dtbl As DataTable Dim drow As DataRow dtbl = Session("Dataset").Tables("Table") drow = dtbl.Rows(e.Item.ItemIndex) drow("Item_Name") = MyDropDownList.SelectedItem.Value Dim cb As New SqlCommandBuilder(objSQLDa) objSQLDa.Update(Dataset, "Table") With dgForVersion .DataSource = Dataset.Tables("Table") .DataBind() End With としているのですが、どうしてもデータが反映された形でグリッドに表示されません。 やりたいことは以下です。 1ページ内に2つのDataGrdをおき、編集、更新、キャンセルボタンを使用してグリッドの編集を行います。編集項目はDropDownListにて変更します。 その後、2つのグリッドの編集終了後にデータベースに書き込みボタンで2つのテーブルの変更 をデータベースに変更する。というものです。 また、項目をDropDownListに変更する際に、ItemCreatedイベントを使用しているのですが、 どちらのグリッドの編集ボタンを押しても、2つのグリッドのItemCreatedイベントが発生してしまうのは、仕様なのでしょうか? 長々とすみません、ご教授おねがいいたします。 | ||||
|
投稿日時: 2003-09-11 11:37
ん〜?このソース、丸ごと持ってきました?それとも、端折っています?
CommanBuilderを使われていますが、ちゃんとUpdateCommandは生成されていますか?何度かここの会議室でも、「どうやって使うの?」という質問がありましたよ?それで、CommandBulderがコマンドを生成する条件は、 ・DataAdapterのSelectCommandが生成されていること ・単一テーブルからの問い合わせであること ですが、満足していますか?引用されているソースからは、その辺がわからないので。 |
1