人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: artsnet111
●カテゴリ:コンピュータ
✍キーワード:C# iアプリ エラー データ データベース
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● KUROX
●0ポイント

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

◎質問者からの返答

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

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


2 ● freemann
●40ポイント

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

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

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

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

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

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

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

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

◎質問者からの返答

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

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


3 ● freemann
●40ポイント

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

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

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

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

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

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ