
長い間Microsoft ACCESS+VBAでデータベースを使用してシステムを趣味と実用を兼ねていろいろ作ってきました(自己使用のシステム)。
最近VISUAL STUDIOというものがバージョンによっては無料で使用できるのを知り、デスクトップアプリをいずれ作りたいと思っていたのでチャレンジしております。
環境は、Windows10、Visual Studio 2015です。
最終目標はデスクトップアプリとしてWindowsFormアプリで、顧客管理システム、施設予約システム等が作れるようになることが目標です。
VBの言語自体はVBAとは若干違うものの近い部分も多く参考書籍や、ネットを参考に何とか移行できそうです。
Visual Studioで書籍などを片手にデータベースを見よう見まねで作って、DataGridViewなどに表示はできているのですが、いまいち腑に落ちずにいます。
そこで今回質問させていただきたいのは、データベースの扱いについてです。
何がしたいという具体的な質問ではなく、Visual Studioの概念が理解できておらず、ダラダラとした文章になってしまいますがお許しください。
◆VisualBasicで、例えばプロジェクト(projectA)を作り、サーバーエクスプローラーからSQL SERVERデータベース(projectA.mdf)を作ると、projectAフォルダの中には各種コードのファイルなどとともにprojectA.mdfができると思います。
質問1:
これは、ACCESSでシステムのaccdbとテーブルデータのみのaccdbを分けて作り、リンクテーブルとして作ることがありますが、これと同じようなとらえ方でいいのでしょうか?
◆ACCESSでは、デバッグ、ビルドという概念が基本的にはなく、システムを作りこみながらテストでデータを登録していくと、どんどんテーブルにデータが蓄えられていき、データの入力とシステムの構築が同時にできてしまいます。
Visual Studioではデバッグ、ビルドをすると先ほどのプロジェクトフォルダ内に、「bin」-「Debug」,「Release」や「obj」-「Debug」,「Release」フォルダができ、その中にもexeファイルや、データベースのmdfファイルもできるかと思います。
質問2:
このbinとobjの2つのフォルダはどういう違いがあるのでしょうか?
質問3:
デバッグ時などでできるこのbin、obj内のmdfは単純に、最初にデータベースを作成したときにプロジェクトフォルダ内にできたmdfがコピーされただけのものなのでしょうか?
◆DateGridViewなどをフォームに配置して、テーブルデータを表示、データの書き換え、削除などをできるようにし、デバッグすると、デバッグ中はレコードの追加などがDateGridViewででき、反映されているのですが、デバッグを終え、サーバーエクスプローラーで「テーブルデータの表示」で確認すると、テーブルデータには反映されておりません。
質問4:
これは、デバッグした際は、Debugフォルダ内のmdfを参照し、データの更新等をしているということでしょうか?
しかし再度デバッグすると元のテーブルデータに戻ってしまいます。
◆上記質問4の現象をネット上でいろいろ調べたところ、ソリューションエクスプローラーのmdfのプロパティーで「出力ディレクトリにコピー」の項目を「コピー」、「新しい場合はコピーする」、「コピーしない」で、「新しい場合は...」でとりあえずは更新できました
質問5:
最初にデータベースを作った、プロジェクトフォルダ直下のprojectA.mdfには、サーバーエクスプローラーからテーブルデータを表示して手入力しない限りデータは変わらない、という考えでいいのでしょうか?
以上ACCESSとの比較ばかりで、またうまく質問もできていないかもしれませんがよろしくお願いいたします。


回答3件
あなたの回答
tips
プレビュー