🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ADO.NET

ADO.NETは.NET Frameworkで各種データベースへの統一された接続機能を提供するソフトウェアコンポーネントの集合です。

Q&A

解決済

1回答

970閲覧

Visual C#2017を使ったADO.NETによるデータベースプログラミングでの画像の扱い

kswdfr

総合スコア21

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ADO.NET

ADO.NETは.NET Frameworkで各種データベースへの統一された接続機能を提供するソフトウェアコンポーネントの集合です。

0グッド

0クリップ

投稿2019/10/20 13:31

Visual C#2017を使ったADO.NETによるデータベースプログラミング(SQL Servre) でエクスプローラに保存してある画像をデータベースに格納する方法とデータベースにある画像を検索して表示したいです。
しかしプログラムの書き方がわかりません。
c# sql server 画像 保存、c# sql server 画像 表示で検索しましたがわかりやすいサイトが見つかりませんでした。
何でどのように書いたらよいか教えてください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

「画像」ってのはただバイナリデータだから、通常DBに格納するならBLOBデータ型なりのバイナリ形式を扱えるデータ型を使えばいい。

SQLServerの場合はそれ以外にFileStreamといって「ファイル」をファイルシステム上にそのまま格納する方法もあるけど、そっちが良ければどうぞご自由に。

「画像を検索して」というのがどういう操作を指してるのかわからないけど、データを格納するなら普通に「ID, ファイル名, BLOB」みたいな何らかのテーブル用意して入れるわけで、ファイル名で検索したいなら単純に「ファイル名」のカラムでWhereをかければ良いし、他の属性とかで検索したいならあらかじめそのカラムを用意してデータ突っ込んでおけばいいだけ。

「画像を検索して」というのがGoogle検索の「画像検索」みたいな高度なことがやりたいならご自分で調べてみて。(たぶん超絶難しいと思う)

「検索して表示」の「表示」の部分はDB関係ない。
DBはデータの入れ物に過ぎないので。

そこは単純に、自分の扱いたい画像データについて、C#上でバイナリ(バイト配列)としてデータをメモリ上に持っている場合にどうやったら表示できるのか調べればいい。

投稿2019/10/20 17:49

gentaro

総合スコア8947

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

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

kswdfr

2019/10/21 02:47

画像をBLOBデータ型などのバイナリ形式を扱えるデータ型を使って画像をDBに格納する方法が調べてもわからないので教えてください。 また画像の検索とはTextBOXに他の属性を入力して検索ボタンを押すとpictureBOXに画像が表示されるものを作りたいです。
gentaro

2019/10/21 03:21

書いた内容を元に調べれば十分サンプルコードや解説記事が見つかると思って回答していますが、どこで躓いたんでしょうか。 ガイドラインで丸投げの質問はNGとなっているサイトなので、1から10まで教えてくれというのはお断りします。 https://teratail.com/help/avoid-asking
Zuishin

2019/10/21 03:38

https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.image.save?view=netframework-4.8#System_Drawing_Image_Save_System_IO_Stream_System_Drawing_Imaging_ImageFormat_ MemoryStream に保存してバイトデータに直すと SQL のパラメーターで扱えます。 「画像」とか「保存」というキーワードは要らないので、BLOB とか FILESTREAM とか MemoryStream のような教えてもらったキーワードを C# や SQL Server のような必須キーワードで絞り込んで調べてみるといいと思います。
kswdfr

2019/10/24 03:21

Visual C#2017を使ったADO.NET(SQL Server)によるデータベースプログラミングでテーブルを CREATE TABLE [dbo].[Table] ( [PhotoID] INT IDENTITY (1, 1) NOT NULL, [Titke] NVARCHAR (MAX) NULL, [Keyword] NVARCHAR (MAX) NULL, [Photo] NVARCHAR (MAX) NULL, PRIMARY KEY CLUSTERED ([PhotoID] ASC) としPhotoにはURL(画像のパス)挿入しました。 画像をpictureBoxに表示するには pictureBox1.ImageLocation = @"C:\~"; で表示できますが@"C:\~";の部分を[dbo].[Table]のPhotoだけ選択して表示したいので教えてください。
gentaro

2019/10/24 05:05

当初の質問内容から派生した別の質問になっている(方法論の質問ではなく特定コンポーネントの使い方の質問になっている)ので、質問を新たに建てて、ご自身が作成したコードの関連する箇所をすべて提示してください。 (WinForms/WPF/UWP/ASP.NETなど、回答にいくつもの候補があるため、開発環境なども詳しく記載してください)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問