VisualStudio2005Pro(C#)とSQLServer2005で社員管理を行うMDIアプリケーションを作成しています。初心者ですから書籍を参考にデータベースにテーブルを作成し、入力フォームを作成しました。データを操作するには便利なBindingNavigatorを利用しました。BindingNavigatorの新規登録ボタンでデータを新規登録して保存ボタンを押したら正常に保存できます。データベースも正常に更新されます。ところが削除ボタンで削除したり、既存データを書き直して(更新・編集)保存すると「更新には、削除された行を含む DataRow コレクションが渡されたとき、有効な DeleteCommand が必要です。」(削除時)や「更新には、変更された行を含む DataRow コレクションが渡されたとき、有効な UpdateCommand が必要です。」(更新時)とエラーが出ます。どうしたら解決できるでしょうか?

回答の条件
  • 1人3回まで
  • 登録:2007/09/07 14:27:00
  • 終了:2007/09/09 11:14:21

回答(3件)

id:KUROX No.1

KUROX回答回数3542ベストアンサー獲得回数1402007/09/07 14:39:42

CommandBuilderを使えばどうでしょうか?

id:artsnet111

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja...

CommandBuilderで検索しましたがマイクロソフトの解説は何のことを書いてるのかさっぱりわかりません。エラーを回避するために何が必要なのかもっと噛み砕いて教えてくれませんか?

2007/09/07 15:04:29
id:freemann No.2

freemann回答回数309ベストアンサー獲得回数502007/09/08 00:22:33

ポイント40pt

BindingNavigatorは基本的なことは何もせず作成できるはずです。

左側にツールボックスがあるとおもいますが、そこにデータソースタブがあるとおもいます。そこで、新規にデータソースを作成します。そのときに今回必要なテーブルの列をしていしてあげます。

で、BindingNavigatorを作成したいフォームに、今作成したデータソースから、列をドラッグします。(このときテーブル名やカラム名をクリックするとドラッグ&ドロップしたときに作成するオブジェクトのタイプを先に選択しておくことができます。)

すると、BindingNavigatorと、ドラッグしたカラムのテキストボックスなりラベルなりが作成されると思います。さらに追加したいカラムをドラッグ&ドロップします。

そして、全部いどうしたら、整列して、実行してみてください。

それだけで、新規作成、更新、削除ができるとおもいます。

ただ、削除したり、更新したりするときには、その行から別の行に移動する前に保存ボタンを押さないと、DBに反映されないとおもいます。

なにか問題があれば、コメントを開けてくれれば、そこで答えたいと思います。

id:artsnet111

最初からやり直したらエラーは出なくなりました。結局原因とかわからないんですかね?こういう原因不明なことが多いならBindingNavigatorとかVSについてる便利な機能は使わないほうが結局早いと思いました。私はPHPでWebプログラムはできるので、完全にソースベースの理屈ならある程度わかるんですが、このVisual~系のデザイナなどの隠蔽されたコードと製作者に中身の見えない構造は結局原因のわからないエラーにハマって開発効率が落ちてしまうような気がします。

完全なソースベースで.NET Frameworkを使ったC#でwindowsアプリを作ろうみたいなサイトとかないですかね?そうしてもVS入門みたいなのしかないのですが…

2007/09/08 15:26:17
id:freemann No.3

freemann回答回数309ベストアンサー獲得回数502007/09/09 02:00:20

ポイント40pt

artsnet111さんのおっしゃっていることはすごく大切だと思います。確かにVS2005の機能を使ってつくると、よくわからないけど、本やネットに書いてある通りにドラッグ&ドロップしたら動いたというのも結構あると思います。それだと、カスタマイズした機能を作ろうとしたり、エラーが出てどこがおかしいのか調べるといった場面に遭遇したときに困ると思います。

私個人の考えを述べさせてていただきますと、VS2005もユーザであるプログラマにやさしいアプリであろうとしているのだろうし、きまりきった同じ文句を毎回書くよりは、そういうのは自動で書いてもらえるなら書いてもらった方が楽でよいと思います。

ただ、そこの裏では、どういった仕組みがあるのかというのは知っていて使っていけるように目指すのがよいと思います。

しかし、現実問題として納期に追われる仕事をしながらそういったところまで勉強するというのは実際には大変だろうしかなりの覚悟と努力が必要になるとおもいます。ここは経営者から見れば何をいってるんだこいつ、と思われると思いますが、プロジェクトとプロジェクトの間に時間を少しだけでもあけてあげて、そこで自分たちが使っている言語なりフレームワークの本を読めるようにする、またはそれを課すなどして、技術レベルを上げるのが効率が良いと思っていたりします。

話がそれてしまいましたが、もしartsnet111さんがそういった、何をしているのかというのを出来るだけコードベースで知りたいなら、'C#プログラミングWindows上・下'とか、'独習APS.NET 第1版'とか、これはVS2005の機能も使っているけど仕組みを詳しく書いてあると思うのが'プログラミングADO.NET 2.0!とかが参考になるのではないでしょうか。なお、前者の二つは.NET Framework1.xベースの本です。(独習は第2版もありますが、こちらはVS2005の機能も使いながらの本です。)

自分が読んだわけではないので参考程度までにご紹介しておきます。

id:artsnet111

書籍の紹介ありがとうございます。

時間は作ればありそうなんのでじっくり勉強してみます。

2007/09/09 11:13:16

コメントはまだありません

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません