プログラミング初心者です。
拙い説明に成りますが、宜しくお願いします。
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で質問しましょう!
似たような質問が見つかりました
- MySQL 【MySQL】本当に困っているので、助けてください。よろしくお願いします。 3 2023/06/03 14:24
- その他(コンピューター・テクノロジー) VBA初心者です。 仕事の残業を少しでも減らしたく 最近勉強を始めたのですが フィルターを一気にかけ 4 2022/08/15 20:58
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- HTML・CSS htmlで画面遷移させたい 1 2022/10/28 18:19
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DataGrdViewに関連付けたデータ...
-
【Excel VBA】先頭の「0」飛び...
-
GASでスプレッドシートの一番上...
-
Listviewのデータを上から順番...
-
ADO.NETのデータベースについて
-
.NET SqlDataReader のレコー...
-
PDFメニューバーの右端にある(...
-
天気予報データを提供してくれ...
-
C# 一覧とデータテーブルを比較...
-
VB DataRepeaterにて条件で表示
-
VBSやVBAでXMLファイルを読み込...
-
コード側からDataGridの列を追...
-
DataGridViewで表示に制限をつ...
-
[AVR] PWMの共有?
-
スプレッドシート 一括でQRコー...
-
1台のサーバへの同一セグメント...
-
GridViewにバインドせずにデー...
-
コンパイルエラーSubまたは...
-
【Excel VBA】指定行以降をクリ...
-
ExcelVBAを使って、値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
DataGrdViewに関連付けたデータ...
-
Listviewのデータを上から順番...
-
GASでスプレッドシートの一番上...
-
VBAでページ番号、ページ最終行...
-
.NET SqlDataReader のレコー...
-
GridViewにバインドせずにデー...
-
【ASP.NET MVC】一覧編集画面
-
ASP C# データベースから1行取得
-
MSFlexGridのデータ表示位置の設定
-
コンパイルエラーSubまたは...
-
C# データ配列から画像を作成す...
-
エクセルマクロ小数点桁数
-
DataGridViewで表示に制限をつ...
-
スプレッドシート 一括でQRコー...
-
GridViewを自動的にスクロール...
-
DBへの重複更新を防ぐ方法について
-
エクセルVBA、数式の入ったセル...
-
GoogleEarthのKMLファイルでラ...
-
VB DataRepeaterにて条件で表示
おすすめ情報