プログラミング初心者です。
拙い説明に成りますが、宜しくお願いします。
VisualStudio2015を使いMVC5で制作しております。
データテーブルからデータを取得して、画面に一覧として表示しており
その一覧はクライアント側で書き換えれるようになっています。
ID 名前 趣味
1 田中 サッカー
2 鈴木 野球
という表示されているものを
ID 名前 趣味
1 田中 サッカー
2 鈴木 ゴルフ
このように書き換えたとします。
「更新」ボタンを押すことで、データテーブルと一覧の情報を比較して
異なっているものがあればその行(上記の例だとID2の行)をアップデート、というプログラムが作りたいです。
しかし、データテーブルと、表示した一覧を比較する方法が分からず困っております。
お手数お掛けしますが、ご教授のほど、宜しくお願いします。
No.3ベストアンサー
- 回答日時:
>>何かしらのデータの受け渡しは必要ないのでしょうか。
EntityState.ModifiedやSaveChangesで更新が行えると言うのは知っていたのですが
それをどの様に活用すれば良いのかが分かりません。
確かにそのあたりの詳細にふれている書籍は、先に紹介したもの意外では、ほとんど目にしませんね。
もちろん、DBからデータの読み込みが必要ですし、変更したデータを書き戻さないと、変更があったかどうかわかりませんから、そういう処理は必要です。
>>ボタン押下でフォームの情報(変更箇所あり)が送信され、それをコントローラーがどの様に受け取り、SaveChanges等で更新処理を行うのか
概要はわかっていても実際のコードが思いつかないでいます。
まあ、「自分でゼロからロジックを考える」となると、それは難しいと思います。
やっぱり最初は、誰かが書いてくれたサンプルコードを参考にしないと時間ばかりかかると思います。
そして、私の場合、サンプルコードは、日本語サイトよりも、海外サイトにお世話になることが多いですね。
ただ、今回のように基本的な更新処理であれば、「ASP.NET MVC5 実践プログラミング/山田祥寛/秀和システム」を入手されて参考にされたらいいと思います。
一覧表形式の画面で入力し、それを登録する処理のサンプルがP.269あたりに掲載されています。
DB更新部分は、とても短いコードとなっていますよ。
>>プログラムを始めて4ヶ月ほどであり、書籍もまだ数冊しか読めてません。
MVCの形でプログラムを作ると、通常よりも難易度が上がる傾向がある気がします。
そして、オブジェクト指向を採用しているC#での開発は、昔のCやVBでの開発に比べたら、必須となる知識がかなり増えていると思います。
だから、読み終えたコンピュータ関連の本が、本棚にずらりと並ぶようになる必要があるのかもしれません・・・。
これまでは、文系学部出身者でも、SEやプログラマーになれたかもしれませんが、最近は、プログラミングで要求される技術レベルが上がっている気がしています。
自転車に乗れれば、仕事できたけど、しだいに自動車に乗れないと駄目とか、大型免許が無いと駄目とかいうイメージでしょうか?
米国みたいに、理系・情報学部を出てないと、IT系の仕事できないようになりつつあるのかな?なんて思うことありますね。
お返事が遅くなってしまい申し訳ございません。
紹介して頂いた書籍を読み、望む動作を行うことが出来ました。
誠にありがとうございます。
また何かあればよろしくお願いします。
No.2
- 回答日時:
>>しかし、一覧で表示されているなかから、別画面やチェック等無く、編集したデータだけを読み取って更新、というやり方が分かりませんでした。
なるほど。もしかすると、このデータ更新回りの話は、読まれた書籍に書かれてないのかもしれませんね。
私は、マイクロソフト公式解説書である「プログラミング 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だとすんなりビルドが通りました。いろいろ良くなっているみたいです。
>>そして、例えば鈴木さんのデータの一部を「野球」->「ゴルフ」と変更すると、その変更を検知してくれます。
自動で変更を検知しているのですね。
何かしらのデータの受け渡しは必要ないのでしょうか。
EntityState.ModifiedやSaveChangesで更新が行えると言うのは知っていたのですが
それをどの様に活用すれば良いのかが分かりません。
ボタン押下でフォームの情報(変更箇所あり)が送信され、それをコントローラーがどの様に受け取り、SaveChanges等で更新処理を行うのか
概要はわかっていても実際のコードが思いつかないでいます。
幾つか考えつく方法で試したのですが、上手く動きませんでした。
プログラムを始めて4ヶ月ほどであり、書籍もまだ数冊しか読めてません。
お手数お掛けしますが、もう少し、ご教授頂けないでしょうか。
No.1
- 回答日時:
>>しかし、データテーブルと、表示した一覧を比較する方法が分からず困っております。
なぜデータテーブルと表示した一覧を比較する必要があるのでしょうか?
VisualStudio2015を使い、ASP.NET MVC5のやり方にのっとってプログラミングすれば、画面で修正したデータだけが更新されるはずです。
そして、更新後のデータを画面に再表示させればいいだけだと思います。
ASP.NET MVC5の書籍を購入されて、読まれていますか?
ご回答ありがとうございます。
比較しなければいけないわけではありません。
一覧に表示されているデータを書き換えて、その書き換えられた物だけを更新、と言う動作が必要でして
その為には、比較した方がいいのではないかと考えておりました。
MVC5の書籍は読みました。
更新したいデータの編集用画面を開き、そこで編集して更新する、というやり方はわかりました。
しかし、一覧で表示されているなかから、別画面やチェック等無く、編集したデータだけを読み取って更新、というやり方が分かりませんでした。
MVCの機能で可能なのでしょうか。
ご教授頂きたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
GASでスプレッドシートの一番上...
-
MSFlexGridのデータ表示位置の設定
-
アクセス2003 データベー...
-
Listviewのデータを上から順番...
-
VBA経験者がVB2005を使えますか?
-
Excelのプルダウンで2列分の情...
-
VBAでActiveDirectoryのユーザ...
-
ExcelVBAを使って、値...
-
array関数で格納した配列の型を...
-
Excelのマクロについて
-
エクセルVBAで、非表示にし...
-
VBA コピーして次の値まで貼り...
-
【VBA】カーソルのある行の1行...
-
Excel VBA、 別ブックの最終行...
-
エクセルで、絶対値の平均を算...
-
マクロ セルの値に応じてセルに...
-
EXCEL VBA 2次元配列に格納さ...
-
Spreadの選択行の取得について
-
レガシーASPの、携帯ブラウザか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
DataGrdViewに関連付けたデータ...
-
Listviewのデータを上から順番...
-
MSFlexGridのデータ表示位置の設定
-
GASでスプレッドシートの一番上...
-
.NET SqlDataReader のレコー...
-
GridViewにバインドせずにデー...
-
DataGridViewで表示に制限をつ...
-
VBAでページ番号、ページ最終行...
-
DataGridViewの内...
-
VB.net CrystalReportでプロジ...
-
GridViewを自動的にスクロール...
-
【ASP.NET MVC】一覧編集画面
-
ACCESSのVBAで[Split]について
-
C# データ配列から画像を作成す...
-
Excelのグラフがちらつい...
-
ASP C# データベースから1行取得
-
VB DataRepeaterにて条件で表示
-
VB.NETにてDB2のBLOB型のデータ...
-
ListViewで条件によって表示を...
おすすめ情報