プロが教える店舗&オフィスのセキュリティ対策術

プログラミング初心者です。
拙い説明に成りますが、宜しくお願いします。

VisualStudio2015を使いMVC5で制作しております。

データテーブルからデータを取得して、画面に一覧として表示しており
その一覧はクライアント側で書き換えれるようになっています。


ID 名前 趣味
1  田中 サッカー
2 鈴木 野球

という表示されているものを

ID 名前 趣味
1  田中 サッカー
2 鈴木 ゴルフ

このように書き換えたとします。

「更新」ボタンを押すことで、データテーブルと一覧の情報を比較して
異なっているものがあればその行(上記の例だとID2の行)をアップデート、というプログラムが作りたいです。

しかし、データテーブルと、表示した一覧を比較する方法が分からず困っております。

お手数お掛けしますが、ご教授のほど、宜しくお願いします。

A 回答 (3件)

>>何かしらのデータの受け渡しは必要ないのでしょうか。


EntityState.ModifiedやSaveChangesで更新が行えると言うのは知っていたのですが
それをどの様に活用すれば良いのかが分かりません。

確かにそのあたりの詳細にふれている書籍は、先に紹介したもの意外では、ほとんど目にしませんね。
もちろん、DBからデータの読み込みが必要ですし、変更したデータを書き戻さないと、変更があったかどうかわかりませんから、そういう処理は必要です。

>>ボタン押下でフォームの情報(変更箇所あり)が送信され、それをコントローラーがどの様に受け取り、SaveChanges等で更新処理を行うのか
概要はわかっていても実際のコードが思いつかないでいます。

まあ、「自分でゼロからロジックを考える」となると、それは難しいと思います。
やっぱり最初は、誰かが書いてくれたサンプルコードを参考にしないと時間ばかりかかると思います。
そして、私の場合、サンプルコードは、日本語サイトよりも、海外サイトにお世話になることが多いですね。

ただ、今回のように基本的な更新処理であれば、「ASP.NET MVC5 実践プログラミング/山田祥寛/秀和システム」を入手されて参考にされたらいいと思います。
一覧表形式の画面で入力し、それを登録する処理のサンプルがP.269あたりに掲載されています。
DB更新部分は、とても短いコードとなっていますよ。

>>プログラムを始めて4ヶ月ほどであり、書籍もまだ数冊しか読めてません。

MVCの形でプログラムを作ると、通常よりも難易度が上がる傾向がある気がします。

そして、オブジェクト指向を採用しているC#での開発は、昔のCやVBでの開発に比べたら、必須となる知識がかなり増えていると思います。
だから、読み終えたコンピュータ関連の本が、本棚にずらりと並ぶようになる必要があるのかもしれません・・・。

これまでは、文系学部出身者でも、SEやプログラマーになれたかもしれませんが、最近は、プログラミングで要求される技術レベルが上がっている気がしています。
自転車に乗れれば、仕事できたけど、しだいに自動車に乗れないと駄目とか、大型免許が無いと駄目とかいうイメージでしょうか?

米国みたいに、理系・情報学部を出てないと、IT系の仕事できないようになりつつあるのかな?なんて思うことありますね。
    • good
    • 0
この回答へのお礼

お返事が遅くなってしまい申し訳ございません。

紹介して頂いた書籍を読み、望む動作を行うことが出来ました。
誠にありがとうございます。

また何かあればよろしくお願いします。

お礼日時:2017/03/27 09:05

>>しかし、一覧で表示されているなかから、別画面やチェック等無く、編集したデータだけを読み取って更新、というやり方が分かりませんでした。



なるほど。もしかすると、このデータ更新回りの話は、読まれた書籍に書かれてないのかもしれませんね。

私は、マイクロソフト公式解説書である「プログラミング ADO.NET 2.0/定価:8,500円(分厚い・・)」を読んで学びました。
でも、確かにこの書籍以外ではあまり見かけない情報があった気がしますからね。

データの保存には、SQLServerとかMySQLなどのデータベースは使われていますか?
それらのデータベースを使う場合、昔は、ADO.NET、現在は、EntityFrameworkというフレームワークを使います。
このフレームワークをうまく使うと、データの編集前と編集後の両方のデータを保持してくれます。

そして、例えば鈴木さんのデータの一部を「野球」->「ゴルフ」と変更すると、その変更を検知してくれます。
そして、読み込まれたデータ全部を書き戻すように思える命令(SaveChanges)を発行すれば、追加・変更・削除のあったデータ
のみを抽出して、データベースを更新してくれるんです。
とてもお手軽です!


ところで、最近は若い人たちには、IT関連、IT業界への魅力が無くなったらしく、専門書が売れない状況があるようです。
まあ、書籍全般が売れない状況でもありますが・・・。
ですので、最新技術については、英語版の書籍はあっても、日本語翻訳版が出版されない状況になっているようです。
ASP.NET MVCにしても、アマゾンで見ると、最新といわずちょっと前のものでも、書籍は英語版のみしか無かったりします。

プログラマにとっては、ほんとに英語が必須になってしまいました・・・。

P.S.
いつのまにか、Visual Studio 2017 Communityが出ていました。
インストールにかかる時間は、かなり短くなっているみたいです。
ちょっと勉強しようと、サンプルプログラムをVS2015に入れたらエラーが出たのですが、VS2017だとすんなりビルドが通りました。いろいろ良くなっているみたいです。
    • good
    • 0
この回答へのお礼

>>そして、例えば鈴木さんのデータの一部を「野球」->「ゴルフ」と変更すると、その変更を検知してくれます。

自動で変更を検知しているのですね。
何かしらのデータの受け渡しは必要ないのでしょうか。
EntityState.ModifiedやSaveChangesで更新が行えると言うのは知っていたのですが
それをどの様に活用すれば良いのかが分かりません。
ボタン押下でフォームの情報(変更箇所あり)が送信され、それをコントローラーがどの様に受け取り、SaveChanges等で更新処理を行うのか
概要はわかっていても実際のコードが思いつかないでいます。

幾つか考えつく方法で試したのですが、上手く動きませんでした。

プログラムを始めて4ヶ月ほどであり、書籍もまだ数冊しか読めてません。
お手数お掛けしますが、もう少し、ご教授頂けないでしょうか。

お礼日時:2017/03/21 17:11

>>しかし、データテーブルと、表示した一覧を比較する方法が分からず困っております。



なぜデータテーブルと表示した一覧を比較する必要があるのでしょうか?

VisualStudio2015を使い、ASP.NET MVC5のやり方にのっとってプログラミングすれば、画面で修正したデータだけが更新されるはずです。
そして、更新後のデータを画面に再表示させればいいだけだと思います。

ASP.NET MVC5の書籍を購入されて、読まれていますか?
    • good
    • 0
この回答へのお礼

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

比較しなければいけないわけではありません。
一覧に表示されているデータを書き換えて、その書き換えられた物だけを更新、と言う動作が必要でして
その為には、比較した方がいいのではないかと考えておりました。

MVC5の書籍は読みました。
更新したいデータの編集用画面を開き、そこで編集して更新する、というやり方はわかりました。

しかし、一覧で表示されているなかから、別画面やチェック等無く、編集したデータだけを読み取って更新、というやり方が分かりませんでした。

MVCの機能で可能なのでしょうか。
ご教授頂きたいです。

お礼日時:2017/03/21 14:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!