‫お帰りなさい｡
‫さて､ 最初の小さなクエリの作り方､ データベースとのすべてのセットアップ方法などがわかったところで､
‫いよいよUIでクレイジーなことを始めるときが来ました｡
‫では､ メインウィンドウのXAMLファイルに移動してみましょう｡
‫そして､ このままにしておくこともできます｡
‫これを閉じて､ もう少しスペースを確保しましょう｡
‫そして､ 実はそんな感じで､ いいんです｡
‫わかりました｡
‫ではまず､ 何が必要なのか｡
‫ここにリストが必要です｡
‫そして､ リストボックスを使いました｡
‫そして実際に､ ここで確認してみましょう｡
‫ラベルがあり､ リストボックスのボタンなどがあるのがわかります｡
‫そして､ それ以上のことをする前に､ まずラベルとリストボックスから始めることにします｡
‫また､ グリッドや列､ 行を作成することで､ 非常にクリーンな方法ですべてのことを行うことができます｡
‫このままドラッグ＆ドロップして､ すべての作業を任せてしまうのです｡
‫これはまあ､ この章のチュートリアルは､ WPFについてそれほど多くはないためです｡
‫データベースの構成要素については､ もっともっとです｡
‫だから､ ここではXAMLについてあまり時間を割くつもりはない｡
‫そこで､ メインウィンドウに何かを表示させるために､ 少しズームインしてみます｡
‫実は､ ここでのシンボルの部分は､ コードがどのように追加されていくかを見るだけなので､ それほど大きなものは必要ありません｡
‫いろいろと引きずり込んでいくんです｡
‫では､ 何が必要なのか？
‫さて､ ラベルが必要なので､ まずはラベルから｡
‫これをドラッグして､ ちょうど左上の隅に配置します｡
‫そして､ ラベルの代わりにZoo Listと表示されるようになりました｡
‫それから､ リストを追加します｡
‫ボックスです｡
‫これは､ すべての異なるリスト要素を含むことになります｡
‫そして､ リストのすぐ下､ または動物園リストの下にドラッグして､ 少し高くするつもりです｡
‫ちょっとだけサイズを変えてみる｡
‫ということは､ こちらは500回になるんですね｡
‫仮に725とする｡
‫それでいいはずです｡
‫さて､ これをもう少し広くすることができます｡
‫そして､ ご覧のように､ この下の方にすべてがセットアップされています｡
‫だから､ マージンがあるんです｡
‫ラベルは､ 上部が垂直方向､ 左側が水平方向に配置されています｡
‫すると､ リストボックスは左方向に水平に配置され､ 特定の高さを持つようになります｡
‫上部に余白があるなど｡
‫ですから､ ここに直接セットアップされているのがおわかりいただけると思います｡
‫そして､ 私がやりたいことは､ アイテムをここに表示させるか､ リスト要素を私の動物園リストとに表示させたいのです｡
‫したがって､ 私はその名前を作る必要があります｡
‫そこで､ リストボックスに名前を追加して､ その1つの名前はリスト・ゼウスに等しいと呼び､ まあ､ ゼウスのリストということにしておきます｡
‫だから､ そういう呼び方をするんです｡
‫さて､ 後ろのコードに戻りましょう｡ Zeusをリストに表示したいので､ クエリやその他を実行することができますが､
‫それだけでは十分ではありません｡
‫ここではCシャープで特定のアプローチを使う必要があり､ リンクを使えば非常にきれいに素早く作ることができるのですが､
‫リンクについては次の章までお預けです｡
‫だから､ とりあえずは昔ながらの方法で､ と言うことになる｡
‫そして､ 後で名前空間のリンクを追加することで､ 速度を向上させ､ 書くべきコードの量を減らすことができるのです｡
‫しかし､ とりあえず必要なのは､ SQL接続を行うことです｡
‫ということで､ SQLの接続を作成することにします｡
‫そして､ SQL接続を使用するために､ システムDOTデータ､ そのSQLクライアントを使用して､ ここに名前空間が必要です｡
‫そして､ ご覧の通り､ SQL接続は問題ないようで､ SQL接続オブジェクトを作成することができますので､
‫これをSQL接続と呼ぶことにします｡
‫さて､ ある時点でこれを初期化する必要があります｡ 最も良い方法は､ メインウィンドウのコンストラクタでこれを行うことです｡
‫つまり､ SQL Connectionが新しいSQL接続になるわけですが､ これにはまあ､ 複数の異なるオーバーロードが必要なわけです｡
‫そして､ 使うのはこちらの商品です｡
‫文字列の接続文字列｡
‫さて､ どうでしょう？
‫接続文字列があります｡
‫前回の動画で設定しました｡
‫これはConnection Stringと呼ばれる文字列で､ コンフィギュレーションマネージャのコネクションストリングタイプのものです｡
‫これは接続文字列で､ まさに私たちが必要としているものなので､ 素晴らしいことです｡
‫だから､ 手渡しで､ そのように言うだけなんです｡
‫これで､ SQLの接続ができました｡
‫メインウィンドウ､ つまりここにあるプログラムはDouble Zoom Managerで､ ここにあるデータベースとつながっています｡
‫そして､ このDB接続文字列のおかげで
‫わかりました｡
‫さて､ 私がやりたいことは､ すべての動物園を表示することです｡ したがって､ 新しいメソッドを作成します｡
‫そして､ 誰も見る必要がないため､ 非公開にすべきです｡
‫他のクラスからアクセスできるようにpublicにすることはできなかったのですが､ このクラスだけがアクセスできるようにprivateにすることにします｡
‫そして､ その1つの番組を動物園とここでは呼ぶことにしています｡
‫まずクエリーが必要だ｡
‫そこで､ 新しいクエリーを作ってみます｡
‫文字列のクエリは､ zooからselect starになる予定です｡
‫これは､ 動物園のテーブルからすべてを選択するものです｡
‫そして､ ここにあるように､ これはテーブルで､ その中にすべてのロケーションがあります｡
‫これで､ このクエリをSQLアダプタ､ 正確にはSQLデータアダプタで使用できるようになりました｡
‫そして､ SQL データアダプタは､ 今あるデータベースへの接続を作成し､ クエリを実行することができます｡
‫ということは､ かなりの確率でそうなりますね｡
‫ここでは､ クエリを渡し､ SQL接続を渡しています｡
‫このようなSQL接続を言うわけですが､ これが結構な確率で行われます｡
‫しかも､ 小文字のSQL接続です｡
‫もちろんクラスではなく､ SQL接続のインスタンスを持ちたいような｡
‫つまり､ この SQL アダプタは､ この接続に対してクエリを実行します｡
‫それではSQL接続に入り､ データベースに接続します｡
‫わかりました｡
‫ということは､ かなりの確率でそうなりますね｡
‫なるほど｡
‫つまり､ このSQLアダプターは､ テーブルを使えるようにしたり､ シャープなオブジェクトを見たりするための､ まあインターフェイスだと考えていただければ結構です｡
‫SQLアダプタの優れた点は､ SQLへの接続を開いたり閉じたりする必要がないことです｡
‫だから､ かなり肩の荷が下りましたね｡
‫ここで必要なのは､ using キーワードを使用して､ 先ほど設定した SQL データアダプタを使用することです｡
‫そして､ ここではそれを利用することができるのです｡
‫そこで､ ズーム・テーブルとなるデータ・テーブルを作成することにします｡
‫しかも､ 新しいデータテーブルです｡
‫まあ､ 不満はない｡
‫まだデータテーブルがありません｡
‫クラスシステムのドットデータを使うことで､ それを解決することができます｡
‫だから､ システムデータを使って｡
‫そして今､ 私はここで実際に奇妙なものを作ってしまいました｡
‫つまり､ このデータテーブルが可能にするのは､ オブジェクト内のテーブルのデータを保存することです｡
‫結構､ 動物園のテーブルって､ うちのテーブルのオブジェクトとか､ C嬰のオブジェクトとか､ あるわけ？
‫かなりね｡
‫このように､ テーブルとここにあるものとの間のインターフェイスをうまく利用することができるのです｡
‫つまり､ データテーブルとデータセットは､ データベースからデータを取得するために使用できる2つの異なるクラスなのです｡
‫SQL アダプタを fill メソッドで実行すると､ zoo テーブルにデータが入力されます｡
‫今度は､ これにSQLアダプタを入れます｡
‫だから結構､ クエリから与えられる内容で｡
‫そして､ 今できることは､ リストビューを取得して､ メンバーのパスを表示し､ それが場所になることです｡
‫それから､ アイデアも必要です｡
‫リスト動物園｡
‫セレクトバリューパスになるんです｡
‫私たちのIDになるだけです｡
‫そして､ いよいよリスト動物園のアイテムソースです｡
‫そして､ それが私たちの動物園のテーブルとなるのです｡
‫デフォルトの表示です｡
‫そのため､ デフォルトでは､ フィルタリングされたビューやカーソル位置など､ カスタマイズされたテーブルのビューが表示されます｡
‫この3つの行でやっていることは､ リスト動物園のカラムのうち､ 表示したいコンテンツを持つカラムは､ テーブルからの位置､
‫そして選択された値のパスになるということです｡
‫リスト内の特定のアイテムの背後にある値はIDになり､ アイテムのソースとして､ ここではzooテーブルのデフォルトビューを設定します｡
‫つまり､ 動物園テーブルのコンテンツがリストのアイテムソースになるというだけのことです｡
‫つまり､ リストまたはリストボックスに動物園テーブルのコンテンツを入れるだけなのです｡
‫そこで､ テーブルとテーブルデータのどの情報をリストボックスに表示させるか｡
‫それが表示部材のパスです｡
‫では､ リストボックスの項目が選択されたとき､ どの値を配信すればよいのでしょうか｡
‫それが選択された値のパスです｡
‫そして最後に､ リストブックが入力すべきデータへの参照を行います｡
‫そして､ それがアイテムソースです｡
‫さて､ 私たちの動物園テーブルのデフォルトビューですが､ これはすべてのデータが含まれているデータテーブルです｡
‫今はそれが素晴らしいので､ それを実行することができます｡
‫ただ､ 1つだけ考慮しなければならないことがあり､ まあ､ それを考慮する前に､ また､
‫その前に､ ちょっと実行してみましょう｡
‫そして､ ご覧の通り､ 動物園のリストがありますが､ 空っぽです｡
‫そしてそれは､ 私がかけないからです｡
‫では､ このメインウィンドウに呼び出してみましょう｡
‫この番組をZooのメソッドと呼ぶことにしよう｡
‫もちろん､ それを実行する前に､ locationが大文字のLで始まることが重要です｡ 私の動物園を見ると､
‫チャプターのデータはlocationになっています｡
‫ロケーションカラムの名前が大文字のLで始まっている｡
‫さて､ これを起動すると､ 画面に動物園が表示されるはずです｡
‫そして､ ニューヨーク､ 東京､ ベルリン､ カイロ､ ミラノがあります｡
‫そして､ それをリストと比較すると､ だからそれを閉じて､ 動物園のテーブルのデータと比較するんです｡
‫そこで､ ニューヨーク､ 東京､ ベルリン､ カイロ､ ミラノで見ることができるテーブルデータを表示します｡
‫わかりました｡
‫それが､ 私たちの小さなアプリケーションへの第一歩となったわけです｡
‫そしてご覧の通り､ アダプタを使うとSQL接続を開いたり､ 必要に応じて接続を閉じたりしてくれるので､
‫それほど難しくはありませんし､ かなり時短になりますね｡
‫コードはそれほど長くありませんが､ 後でそれを短縮することも可能です｡
‫データベースやコネクションを使用する場合､ エラーや例外が発生する可能性があるので､
‫tryとcatchを使用するのは常に良いことです｡
‫そして､ それを一般的な例外でキャッチするだけです｡
‫そして､ これはメッセージボックス､ ドット・ショーになるのですが､ Eを文字列に表示するだけなのです｡
‫もちろん､ これを使用するたびに発生する可能性のあるさまざまな例外をキャッチすることができますので､
‫エラーを表示するだけです｡
‫しかし､ ここではシンプルに､ この一般的な例外を1つ追加するだけで､ 何らかの理由で動物園の表示がうまくいかない場合に､
‫そのエラーが何であったかを表示するようにします｡
‫わかりました｡
‫というわけで､ 今回の動画はここまでです｡
‫次のビデオでは､ クリックしている特定の動物園の関連動物を表示する機能を追加する予定です｡
‫では､ 現地でお会いしましょう｡