質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

3回答

7512閲覧

C#、WPFとデータベースについて分からないことだらけです

kurosuke___

総合スコア217

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2017/04/24 20:15

簡単なチュートリアルがしたい

WPFでDataGridを作って、DataGridとデータベースを紐づけてDataGridに内容を表示、そのDataGrid上での編集をデータベースに反映して保存といったものが作ってみたいです。

ですが、ちょっとデータベースについていろいろ調べてもなかなか理解できずにいるので質問させていただきます。

そもそもデータベースはサーバー上に上がっているファイル?にアクセスしないといけないんでしょうか。

ローカルにファイルとしてデータベースが存在していて、アプリ側でそれを読み込んで使うとかそういう感じではないんですか?

実際、上記のようなアプリを作るとき、VSを起動してからの実際のワークフローが知りたいです。

CSVをDataGridに表示するときは、CSVをジェネリック型に読み込んで、ItemsSource?にぶちこんだら表示できましたがそういう感じではないんでしょうか?

初心者ゆえ、とてもばかげた質問をしている可能性もありますが・・・このデータベースとC#の関係に関するもやもやを取っ払いたいです。

抽象的な質問で申し訳ありませんが、お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

CSV はデータです。
データベースはデータではなく、データを保存・検索できるアプリケーションです。

他のアプリケーションはデータベースに接続してそれを通してデータを読み書きします。

データベースのことをアプリケーションと言いましたが、通常のアプリケーションと違ってずっと裏で動いていて機能を提供しています。この提供する機能、この場合はデータを読み書きする機能をサービスと言い、それを提供するものをサーバーと言います。

ですからデータベースはサーバーです。(一部、サーバーとして接続するものではなくアプリケーションに組み込む種類のものもあります)

サービスには色々な種類のものがあり、HTTP サーバー、FTP サーバー、SMTP サーバー、POP サーバーなどが馴染みがあると思います。

このようなサーバーを集めて外部または内部に開放し、それらを使う用途に特化したコンピュータのこともまたサーバーと言います。

データベースを使う時には、データベースをインストールして動かさなければなりません。

ローカルのパソコンはセキュリティー上の理由で外部に対して閉じているよう設定されるので、ローカルのデータベースには通常外部から接続できません。
その場合は外部にサービスを提供している専用のコンピュータ、つまりサーバー上で動いているデータベースに接続する必要があります。

ただし、質問者さんがやりたいのは外部にサービスを提供することではなく、データベースの学習ですから、データベースに接続する自作アプリはローカルにあって外から利用できなくていいはずです。

この場合は、ローカルにデータベースをインストールし、それに接続するのがいいと思います。とりあえず SQL Server Express というデータベースをインストールし、それを使ってください。他にも無料で高性能なデータベースはいくつもありますが、MS 製のこのデータベースであれば、MS 発信の情報が充実しています。データベースに接続して使うライブラリの使用例もこれを前提としています。

投稿2017/04/24 22:14

編集2017/04/24 22:33
Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kurosuke___

2017/04/29 00:24

SQL Server Expressですね、ちょっと試してみます。 ありがとうございます。
guest

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

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kurosuke___

2017/04/29 00:56

なるほど、大体イメージはつかめました。 検索ワードの提供ありがたいです! ありがとうございます!
KSwordOfHaste

2017/04/29 01:12

「C#」と「部品のクラス名」を両方指定して検索するのがコツだと思います。GUIだと「Form」か「WPF」のいずれかを指定するのもよいと思います。
guest

0

ベストアンサー

私はWPFはつかったことがないのですが、DataGridはASP.netやwindowsフォームにもあり、CSVやデータベースから取得したデータが格納されたDataTableを渡すと表にして表示してくれます。おそらく同様にDataTableを渡すことができると思います。

データベースとは何かということですが、短くいうとプログラムとやり取りするソフトウェアです。ExcelやWordと同じく独自の形式で保存しますし、保存先はデータベース側が管理します。プログラム側はデータベースにデータの扱いを依頼します。依頼する内容は、データの挿入・検索・更新・削除などです。

データベースを適切に使えるようになるには、そこそこの量の学習が必要で、しかも避けては通れないと思われますので、別途時間をとって挑戦してください。

現時点では、WPFの入門書に、データベースを利用したアプリケーションのチュートリアルがある本があると思われますので探してみてはいかがでしょうか?

投稿2017/04/25 00:54

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kurosuke___

2017/04/29 00:22

データベースはアプリケーションなんですね。あんまり意識していませんでした。ありがとうございます。
Zuishin

2017/04/29 00:35

ごめんなさい。私が分かりやすいかなと思ってアプリケーションという言葉を使いましたが、あまりデータベースのことをアプリケーションという言葉では言い表しません。 iwamoto_takaaki さんのおっしゃっているのは、データベースを使用するアプリケーションです。
kurosuke___

2017/04/29 00:49

データベースそのものとそれを管理するアプリケーションをまとめて「データベース」と呼んでいるという認識でよろしいでしょうか?
KSwordOfHaste

2017/04/29 04:15

データベースそのものとそれを管理するDatabase管理ソフト(OracleとかMySQLとかPostogreとかから提供されているソフト)を「データベースと呼ぶ」のはおっしゃるとおりです。 ただ、Zuishinさんがおっしゃるるとおりでして、Database管理ソフトのようなプログラムはアプリケーションとは呼びません。こういうものをなんて呼ぶかはちょっと自信ないですが、「アプリケーション」に対して、「基本ソフト」、「基盤ソフト」などと呼ぶと思います。
iwamoto_takaaki

2017/04/29 14:33

私の場合はデータベースはミドルウェアと呼びます。単体での利用が想定できないため、ソフトウェアと呼べないため中間的なソフトウェアという意味で使われる言葉です。アプリケーションで無いわけでは無いのですが、アプリケーションと呼ぶのは多くの人が抵抗を感じます。 データベースと言うのはデータそのものを呼ぶわけではありません。”データベースそのもの”と呼ぶのには違和感を感じます。それは、一連のDBのファイルです。(一つのファイルで無いことが多い。) 一方、”それを管理するアプリケーション”はDBMS(database management system)とよばれています。 DBMS、スキーマ(データの定義など)、データ(1つ以上のファイルから成る)で提供する機能(サービス)をデータベースとよぶことが一般的です。 機能を持たない場合は、CSVと同じく単なるデータもしくはファイルと呼ぶべきものです。
KSwordOfHaste

2017/04/29 14:43 編集

なるほど、ミドルウェアの方がしっくりきますね! --- 失礼しました、しっくりじゃなくてミドルウェアと呼ぶべきですね。 基本ソフトや基盤ソフトという言い方は間違いかも知れません。少なくとも一般的とはいえないようです。
iwamoto_takaaki

2017/04/29 15:55

一般的でない呼び方であっても、そう呼ぶ人があると知れて嬉しいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問