‫お帰りなさい｡
‫このビデオでは､ データの更新と削除を行うために､ リンクを使用する予定です｡
‫ではまず､ データを更新してみましょう｡
‫そこで､ ここに新しいメソッド､ public void updateを作成し､ update 20と呼ぶことにします｡
‫そこで､ トニーを更新したいと思います｡ アントニオと呼ぶことにしましょうか､ トニーは彼の名前のまあ短いバージョンです｡
‫だから､ 名前を全部使うんです｡
‫まず､ Tonyオブジェクトを取得する必要がありますが､ ここではstudentクラスを使ってTonyと呼ぶことにします｡
‫それは､ データコンテキストドット学生ドットファーストやデフォルトになります｡
‫これは､ シーケンスの最初の要素か､ シーケンスに要素がない場合のデフォルト値を返すものです｡
‫そして､ 存在しないものにアクセスしようとすると､ 何も機能しなかったり､ エラーなどが発生したりするので､
‫それは良いことだと思います｡
‫だからここでは､ steイコール大きい記号のファーストネームはTonyと同じとする｡
‫ですから､ もちろんここでもイコールを使うことができますが､ それは別の方法ですよね？
‫そこで､ 今度はTonyを手に入れました｡ 今できることは､ 単純にTonyの名前をAntonioとTonyのように変えたい､
‫と言うことです｡
‫そして今､ 私は変更を提出する必要があります｡ そうしなければ何も起こりませんから｡
‫そのため､ データコンテキストは変更を送信しません｡
‫そして､ データグリッドに表示できるようになりました｡
‫そのため､ 項目ソースはデータコンテキストドット学生になります｡
‫だから､ 全生徒に会いたいし､ 今､ トニーがトニーでなくなったのを確認する｡
‫彼はアントニオです｡
‫そして､ コードを実行する前に､ もちろんこのメソッドを呼び出す必要があります｡
‫そこで､ ここでコメントアウトして､ 古き良き時代の友人であるトニーをアップデートしてみましょう｡
‫トニーを更新しました｡
‫では､ コードを実行してみましょう｡
‫そして､ 私たちの生徒たち､ カルラ､ そしてアントニオがいます｡
‫そこで､ Tonyの名前を変更したのです｡
‫オブジェクト全体を取得し､ 必要なコンポーネントを調整するだけなので､ とてもクールです｡
‫ですから､ 必要なプロパティをすべて調整し､ あとは変更を送信すれば完了です｡
‫つまり､ IDがso and soでユーザーがso and soのオブジェクトを取得し､ XとYとZを変更または更新する､
‫と言うよりもずっと簡単なのです｡
‫だから､ SQLはこうやってやるだけじゃなくて､ もっと複雑なんだ｡
‫だから､ それはかなり､ とても簡単でかっこいい方法です｡
‫だから､ 他の学生をアップデートしてみるのもいいかもしれませんね｡
‫講義の更新､ 大学の更新など､ とても簡単にできるようになりました｡
‫ここで見たように､ あるユーザーを削除してみましょう｡ このJamesユーザーには不満があります｡ トランスジェンダーだからではなく､
‫オブジェクトやレクチャーを持っていないからです｡
‫そして､ 彼の名前はジェームズではなく､ ジェームスです｡
‫そこで､ 私は間違いを犯したので､ そのオブジェクトを完全に削除したいのです｡
‫あるいは､ 大学を辞めたばかりなので､ もう単位に含まれないのかもしれません｡
‫だから､ 削除機能を使ってやりたいんです｡
‫だから､ ジェーンを削除してください｡
‫だから電話するんだけど､ まずジェーンが必要なんだ｡
‫だから学生ジェームズは､ データコンテキストは､ 最初またはデフォルトとここでそれはtの開始の名前がジェーンと同じであるとして､
‫学生を考えているつもりです｡
‫今､ データコンテキストドット学生メソッドがあり､ あなたが見ることができるように､ 多くのものがあります｡
‫そうですね｡
‫そして､ 私が使いたいのは､ 送信時の削除です｡
‫つまり､ このJaneオブジェクトを削除し､ その後にコンテキストを作成して変更を送信する必要があります｡
‫そのような変更を提出する｡
‫そして今､ それを実行したら｡
‫エラーに遭遇するかもしれない｡
‫だから､ 見せるんです｡
‫もう一度､ 生徒たちに見せてみよう｡
‫トニーを更新したトップに戻ろう｡
‫今はジム､ エリートジムです｡
‫走らせてみよう｡
‫そして､ それが功を奏して､ 私たちはカルラ､ アントニオ､ リリーの3人になったのです｡
‫彼らはまだ大学にいて､ ジェームズはもういない｡
‫だから､ 今回の私の場合､ うまくいったのです｡
‫しかし､ ここで削除してエラーになった場合､ 必要なのは接続を再構築することです｡
‫そこで､ どうすればいいのか､ すぐにお見せします｡
‫もしこれがうまくいかない場合､ つまりエラーが発生した場合は､ このコードの行を実行する代わりに､ この3つの行を追加する必要があります｡
‫そこで､ まず､ 接続文字列を自分に合ったものに設定し直す必要があります｡
‫ですから､ 私の場合はスチューデントマネージャーではなく､ この場合はSQLにリンクしているのです｡
‫というわけで､ ここでもまったく同じリンクが張られているので､ それを利用することにします｡
‫つまり､ これは単なるバグフィックスというか､ まあ回避策というか｡
‫わかりました｡
‫だから､ このエラーに遭遇したら､ それで解決することができるのです｡
‫そして､ SQLデータ､ クラスデータとしてリンクを作成し､ DBというコンテキストを接続し､ DBの学生をアイテムソースとして設定することができます｡
‫わかりました｡
‫つまり､ このエラーに遭遇した場合です｡
‫でも､ 私の場合､ 幸いにもうまくいったので､ このままでいいです｡
‫そこで､ この削除ゲームです｡
‫わかりました｡
‫さて､ 私たちがやってきたことを少しまとめてみましょう｡ 私たちはかなりのことをやりましたし､ まったく触れていないこともありますが､
‫それもかなり重要なことです｡
‫そして､ このようなことをすると､ 必ずと言っていいほど､ エラーが発生することにお気づきでしょうか｡
‫だから､ データベースなどを扱うときは､ 必ずと言っていいほど､ エラーが発生することがあります｡
‫だから､ 投稿したりするたびに､ うまくいかないことがあるんです｡
‫では､ トライ＆キャッチを｡
‫そうしないと､ プログラム全体がクラッシュする可能性がありますからね｡
‫そしてそれは､ これについての､ あるいはこれの全体的な考え方ではありません｡
‫そのため､ 潜在的なエラーがある場合は､ どこであろうとキャッチしようとします｡
‫ですから､ プログラムが決してクラッシュしないように､ 先に進んで潜在的なエラーをすべて修正するように心がけてください｡
‫だから､ 間違った名前を持っているか､ 持っているとしましょう｡
‫そう､ 存在しないものにアクセスしようとしているのです｡
‫あるいは､ 私たちは何かをどこかに置こうとしていますが､ そのどこかに置いたところで､ それは存在しないのです｡
‫だから､ そういうことは常に気をつけなければならない｡
‫そして､ 今､ まとめよう｡
‫それでは､ さまざまな方法をご紹介しましょう｡
‫このメソッドを実行するたびに､ 新しい大学が2つ作成されるため､
‫まず､ すべての大学を削除します｡
‫そこで､ その都度､ 上に追加していきました｡
‫だから､ まず全部削除して､ それから段階的に追加していったんです｡
‫わかりました｡
‫さて､ このexecuteコマンドは､ 単にSQLコマンドを実行するためのものです｡
‫これは大学から削除されるんですね｡
‫だから､ 大学からすべてのコンテンツを削除してしまうのです｡
‫このように､ 大学側のテーブルから､ 特定のクラスのオブジェクトを作成するわけですが､ このクラスは､ 自分たちでクラスエントリーを作成していないため､
‫どこから来るのでしょうか｡
‫これはSQLデータクラスへのリンクで､ テーブルをここにドラッグするだけで､ そのテーブルをクラスとして使えるようになるのですから､
‫すごいですよね｡
‫そして､ そこにあるプロパティは､ 私たちがアクセスして調整できるクラスのプロパティに過ぎないのです｡
‫そのため､ そのオブジェクトを作成して適宜調整し､ 特定のデータコンテキストやテーブルの中に保存することも可能です｡
‫このデータコンテキストはSQLデータクラスへのリンクで､ データコンテキストは接続文字列で接続されており､
‫これはデータベースへの接続です｡
‫つまり､ 私たちのこの接続は､ 私たちが持っているデータ接続なのです｡
‫次に､ その変更点を提出する方法を見ました｡
‫そこで､ 何かを追加し､ それをsubmitで挿入し､ submitするのです｡
‫ですから､ 何かを追加したい場合､ そしてそれを私たちのデータグリッドに表示したい場合は､
‫常にこの方法が基本になります｡
‫XAMLファイルにあるオブジェクトは､ Zemoの単なるデータグリッドです｡
‫次に､ このアイテムのソースを､ 表示したいデータコンテキストに設定することができます｡
‫ですから､ 私たちの場合､ すべての大学を見たいと思い､ それがここで実現したわけです｡
‫だから､ 学生も同じです｡
‫そして､ ここにあるように､ 複数のオブジェクトを一度に追加したため､ リストを作成して､ insert on submitの代わりにinsert
‫all and submitを使用しましょうと言っただけです｡
‫そして､ カーラ､ トニー､ リリー､ ジェーン､ すべての学生を作成し､ 性別や大学IDなど､
‫ここに追加情報を記載しました｡
‫そしてそれらは､ 学生でも利用できます｡
‫名前と性別と大学IDがあるんですね｡
‫そこで､ それらを使って､ 学生一人ひとりに値を付けていきました｡
‫そこで､ 新しいオブジェクトを作成しました｡
‫つまり､ これは新しいオブジェクト､ あれは新しいオブジェクトというように｡
‫そのため､ すべての学生オブジェクトを含む学生リストがあり､ その効果を確認する前に再度変更を送信することができます｡
‫ですから､ この行を実行しなければ､ 何も起こりません｡
‫そしてまた､ 学生たちに見せたかったので､ 講義と同じことをしました｡
‫そして今､ 私たちはここで､ 学生と講義の間に関連性を持たせたのです｡
‫だから､ 今は数学と歴史の講義があるんです｡
‫そして､ 私たちが行ったことは､ 「よし､ 新しい生徒の講義を作ろう､ そこで､ カルラというオブジェクトと数学というオブジェクトを全部与えよう」ということです｡
‫そして､ この学生の講義は､ どのような情報が必要なのかが､ それ自体でわかる､ あるいは迷うということが､ クールな点です｡
‫つまり､ カルラのIDを取り､ 数学のアイデアを取り､ それを学生の講義で作るのです｡
‫だから､ もうそこで正しく教えられているんです｡
‫ですから､ 手動で行う必要はないのですが､ もちろんここで見たように行うことも可能です｡
‫というわけで､ そういうことにしています｡
‫あるいは､ それは､ 言ってみれば､ 短絡的に良くない､ 美しくないということなのですが､ それはそれで全然いいんです｡
‫もちろん､ 学生IDやトニドットIDのようにすることもできますので､
‫それはそれで､ 非常に正確なアプローチと言えるでしょう｡
‫しかし､ Toniオブジェクト全体を指定しても､ ToniのIDを取得するだけなので､
‫Submit時にそれを挿入することができます｡
‫そこで､ その学生を挿入し､ その変更を提出するのです｡
‫そして､ 学生たちは､ トニ大を手に入れるわけです｡
‫まあ､ チェックアウトしただけなんですけどね｡
‫トニはどこの大学にいるんだ｡
‫そこで､ 確認しました｡
‫このトニ生､ トニ大大学院というのを作りました｡
‫だから､ それもかなりきれいなんです｡
‫そして､ 彼の講義を受ける方法､ イェール大学の学生を全員集める方法を見ました｡
‫そして､ もっと面白いのは､ テーブルに参加しなければならないことだ｡
‫そこで､ 大学とトランスジェンダーを組み合わせたわけです｡
‫そこで､ 学生と大学を組み合わせることになったのです｡
‫そして､ さらに進化したのが､ 大学と講義を組み合わせたところです｡
‫つまり､ 講義から学生への講義､ 学生への講義など､ このように長い道のりを歩むことになるので､
‫かなり複雑な共同声明と言えるでしょう｡
‫そこで､ その異なるテーブル同士をつなげているのです｡
‫そして､ データを更新する方法と､ データを削除する方法を確認しました｡
‫素晴らしい｡
‫ということで､ かなり伸びた今回の動画はここまでとします｡
‫このビデオそのものではなく､ ここにある例全体がSQLの例とリンクしているのですが､ フォローしていただけたらと思います｡
‫そして､ SQLへのリンクの使い方を知って､ それがいかに強力か､ 一般的にリンクがいかに強力かは､
‫いつも同じような類いのものだからでしょう？
‫同じようなコードで､ 同じようなアプローチで､ この場合のデータソースはSQLです｡
‫他の場合はXMLで､ 私たちの場合は単なる配列やリストでした｡
‫このように､ リンクはデータを扱い､ 正しく表示することに関して､ かなり強力であることがおわかりいただけると思います｡
‫素晴らしい｡
‫それでは､ 今回の講義を楽しんでいただき､ また次の講義でお会いしましょう｡