VisualStudio2005Pro(C#)とSQLServer2005で社員管理を行うMDIアプリケーションを作成しています。初心者ですから書籍を参考にデータベースにテーブルを作成し、入力フォームを作成しました。データを操作するには便利なBindingNavigatorを利用しました。普通の単純なWindowで作成したものをビルドして動かしデータを更新したり削除するとデータベースは正常に更新されました。しかし、完成目標としてはアプリケーションをMDI形式したいと考えています。MDI親フォームを新規作成し(IsMdiContainer)うまくいっていた入力フォームを子フォームに設定し、親フォームのメニューから子フォームを開くまではできました。しかし子フォームでデータの内容を更新してBindingNavigatorの保存ボタンをクリックして親ウィンドウの×ボタンでアプリケーション自体を終了したらデータベースは一切更新されません。子フォームで更新した段階では、フォーム上では更新されたかのように見えます。これは何か見落としているのでしょうか?

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2007/08/30 09:49:10
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:KUROX No.1

回答回数3542ベストアンサー獲得回数140

ポイント80pt

http://japan.internet.com/developer/20060627/26.html

保存ボタンは「フロッピーディスクのアイコン」のことで

上記URLどおりなら、保存ボタンを押したときに、

変更が検知できてない可能性があります。

書いてる内容をみて、少しコードを付け足せばいいのかなと

思うんですが、逆にBindingNavigatorを私が使ったことが

ないので、よく分かりません。

id:artsnet111

これは勿論見てます。

有効な回答を期待します。

2007/08/29 12:39:29
id:sukiyaki22 No.2

回答回数299ベストアンサー獲得回数2

id:artsnet111

テキトーな回答ならしないでください。

特に3番目のアドレスは…ふざけないでください。

2007/08/29 12:40:04
id:minkpa No.3

回答回数4178ベストアンサー獲得回数55

id:artsnet111

テキトーな回答ならしないでください。

2007/08/29 12:40:43
  • id:freemann
    BindingNavigatorは初めて使ってみましたが、試しにやってみたところ、MDIにしても更新はできました。
    DataSetに登録された内容をDBに反映するのは以下のコードでうまくいってるので、試しに見比べてみてください。(たぶん参考にしているHPがいっしょでしょうから同じだとは思うのですが・・)

    private void SaveButton_Click(object sender, EventArgs e)
    {
    this.Validate();
    this.bindingSource1.EndEdit();
    this.customerTableAdapter.Update(this.selfDBDataSet.Customer);
    }
  • id:artsnet111
    artsnet111 2007/08/30 17:43:06
    そうですね。同じコードです。
    親フォームを閉じて再度ビルドしてもDBは更新されていますか?
    私の場合子フォームで保存ボタンを押した時は更新されたかのように見えますが
    親フォームを閉じて再度実行するとDBが更新する前になってしまうということです。
  • id:freemann
    私の場合はデータは更新されます。
    ADO.NET 2.0の本のP.48のところのコラムに「変更内容が更新されない場合」というのがあります。これを参照すると、プロジェクトで*.mdfファイルが実行ディレクトリにコピーされているときがあって、ビルドするたびに上書きされる時があるらしいです。上書きされるということは、更新した内容がなくなるということです。
    これもチェックしてみるとよいかもしれません。

    http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Microsoft-ADO-NET2-0-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E5%85%AC%E5%BC%8F%E8%A7%A3%E8%AA%AC%E6%9B%B8-Microsoft-Visual/dp/4891005491/ref=wl_it_dp/249-1396710-3608316?ie=UTF8&coliid=I3VWRFZT6KASL1&colid=F9BE74SH1OIV
  • id:artsnet111
    artsnet111 2007/09/07 14:18:37
    原因はまさしくソレでした。mdfファイルがビルドするたびに上書きされていたようです。DBのプロパティの「出力ディレクトリにコピー」を「新しければコピーする」に変更したらOKでした。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません