簡単なチュートリアルがしたい
WPFでDataGridを作って、DataGridとデータベースを紐づけてDataGridに内容を表示、そのDataGrid上での編集をデータベースに反映して保存といったものが作ってみたいです。
ですが、ちょっとデータベースについていろいろ調べてもなかなか理解できずにいるので質問させていただきます。
そもそもデータベースはサーバー上に上がっているファイル?にアクセスしないといけないんでしょうか。
ローカルにファイルとしてデータベースが存在していて、アプリ側でそれを読み込んで使うとかそういう感じではないんですか?
実際、上記のようなアプリを作るとき、VSを起動してからの実際のワークフローが知りたいです。
CSVをDataGridに表示するときは、CSVをジェネリック型に読み込んで、ItemsSource?にぶちこんだら表示できましたがそういう感じではないんでしょうか?
初心者ゆえ、とてもばかげた質問をしている可能性もありますが・・・このデータベースとC#の関係に関するもやもやを取っ払いたいです。
抽象的な質問で申し訳ありませんが、お願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
CSV はデータです。
データベースはデータではなく、データを保存・検索できるアプリケーションです。
他のアプリケーションはデータベースに接続してそれを通してデータを読み書きします。
データベースのことをアプリケーションと言いましたが、通常のアプリケーションと違ってずっと裏で動いていて機能を提供しています。この提供する機能、この場合はデータを読み書きする機能をサービスと言い、それを提供するものをサーバーと言います。
ですからデータベースはサーバーです。(一部、サーバーとして接続するものではなくアプリケーションに組み込む種類のものもあります)
サービスには色々な種類のものがあり、HTTP サーバー、FTP サーバー、SMTP サーバー、POP サーバーなどが馴染みがあると思います。
このようなサーバーを集めて外部または内部に開放し、それらを使う用途に特化したコンピュータのこともまたサーバーと言います。
データベースを使う時には、データベースをインストールして動かさなければなりません。
ローカルのパソコンはセキュリティー上の理由で外部に対して閉じているよう設定されるので、ローカルのデータベースには通常外部から接続できません。
その場合は外部にサービスを提供している専用のコンピュータ、つまりサーバー上で動いているデータベースに接続する必要があります。
ただし、質問者さんがやりたいのは外部にサービスを提供することではなく、データベースの学習ですから、データベースに接続する自作アプリはローカルにあって外から利用できなくていいはずです。
この場合は、ローカルにデータベースをインストールし、それに接続するのがいいと思います。とりあえず SQL Server Express というデータベースをインストールし、それを使ってください。他にも無料で高性能なデータベースはいくつもありますが、MS 製のこのデータベースであれば、MS 発信の情報が充実しています。データベースに接続して使うライブラリの使用例もこれを前提としています。
投稿2017/04/24 22:14
編集2017/04/24 22:33総合スコア28660
0
そもそもデータベースはサーバー上に...アプリ側でそれを読み込んで使う
データベースは広義にはローカルPC上のCSVの読み書きを含むかも知れませんが、一般的には「大量のデータを管理しているDBMS(Database Management Systemのプログラム)がどこかのサーバーで(ローカルPCのこともありますが)常に動いていて、そのDBMSとDBドライバー(ライブラリー)を通じて、DBMSが管理しているデータの操作(読み書き)を行うもの」というイメージだと思います。
上記のようなアプリを作るとき、VSを起動してからの実際のワークフロー...そういう感じではないんでしょうか?
CSVにせよDBMSにせよデータの表示のさせかたは一通りではありません。大雑把に言えば(A)「データを自前で読み書きしDataGridViewのrowの参照・設定を直接行う」方法と(B)「datasourceを介したバインディングによってデータソースからDataGridViewの表示内容を自動的に結びつける」方法があると思います。
CSVの表示サンプルをみると(A)でやっているものを多く見かけますが、それはCSV内データを単純に全件表示するなら自前で読み込んでも大した手間ではないからだと思います。一方、DBMS上のデータを相手にする場合は(A)も(B)も見かけます。
いずれにせよ「c# datagridview db(or csv) (datasource)」といったキーワードで検索すると参考になるページにヒットすると思いますが、(A)(B)どちらでやっているかに着目すると混乱を避けられると思います。
投稿2017/04/25 00:04
総合スコア18394
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/29 01:12
0
ベストアンサー
私はWPFはつかったことがないのですが、DataGridはASP.netやwindowsフォームにもあり、CSVやデータベースから取得したデータが格納されたDataTableを渡すと表にして表示してくれます。おそらく同様にDataTableを渡すことができると思います。
データベースとは何かということですが、短くいうとプログラムとやり取りするソフトウェアです。ExcelやWordと同じく独自の形式で保存しますし、保存先はデータベース側が管理します。プログラム側はデータベースにデータの扱いを依頼します。依頼する内容は、データの挿入・検索・更新・削除などです。
データベースを適切に使えるようになるには、そこそこの量の学習が必要で、しかも避けては通れないと思われますので、別途時間をとって挑戦してください。
現時点では、WPFの入門書に、データベースを利用したアプリケーションのチュートリアルがある本があると思われますので探してみてはいかがでしょうか?
投稿2017/04/25 00:54
総合スコア2883
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/29 00:22
2017/04/29 00:35
2017/04/29 00:49
2017/04/29 04:15
2017/04/29 14:33
2017/04/29 14:43 編集
2017/04/29 15:55
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/29 00:24