C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: pngファイルをデータベースに登録したい


(過去ログ 57 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■32101 / inTopicNo.1)  pngファイルをデータベースに登録したい
  
□投稿者/ YK (6回)-(2009/02/01(Sun) 16:03:24)

分類:[データベース全般] 

asp.net Visual Studio2005、SQL Server2005で、WEBページの開発をしている初心者です。

pngファイルをデータベースに登録し、Webページに表示させたいのですが、恥ずかしながら、データベースにファイルを登録することさえできません。

試した方法としては、フィールドのデータ型をimage型とし、APP_Dataに追加したpngファイルをコピーし、フィールドに貼り付けるといったものです。その際、エラーが発生し、「この結果ペインを利用して、このフィールドデータをNULL以外の値に設定してください。」とメッセージがありました。

インターネット上と書籍から調べましたが、そのような初歩的なことについては見つけることができませんでした。どなたか、ご教授お願い致します。

引用返信 編集キー/
■32102 / inTopicNo.2)  Re[1]: pngファイルをデータベースに登録したい
□投稿者/ オショウ (85回)-(2009/02/01(Sun) 16:52:25)
> 試した方法としては、フィールドのデータ型をimage型とし、APP_Dataに追加したpngファイルをコピーし、フィールドに貼り付けるといったものです。その際、エラーが発生し、「この結果ペインを利用して、このフィールドデータをNULL以外の値に設定してください。」とメッセージがありました。

  私はDBにバイナリファイルを登録することは好んでは
  いないのですが・・・

  ttp://codezine.jp/article/detail/3026

  この辺を参考に勉強してみて下さい。

※ 私は、画像ファイル名と保存先のパスをDBに登録して行いました。

以上。参考まで・・・
引用返信 編集キー/
■32103 / inTopicNo.3)  Re[2]: pngファイルをデータベースに登録したい
□投稿者/ やじゅ (924回)-(2009/02/01(Sun) 17:13:34)
やじゅ さんの Web サイト
2009/02/01(Sun) 17:17:23 編集(投稿者)

画像などのバイナリファイルを登録するには、プログラムを組む必要があります。
Management Studio以外の別のツールを使えば、簡単に登録する方法があるかも知れませんけど。

ファイルからの画像の挿入 (ADO.NET)
http://msdn.microsoft.com/ja-jp/library/4f5s1we0.aspx
ファイルのアップロード(その1:画像をDBへ保存)
http://www.ailight.jp/WebFileUpload.aspx

情報共有のため、リンクしておきます。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=48080&forum=26

>インターネット上と書籍から調べましたが、そのような初歩的なことについては見つけることができませんでした。
まー確かに画像を貼り付けとかしたら、登録して欲しいと思いますもんねー。

「SQL Server2005 画像 挿入」などのキーワードで調べるとか
引用返信 編集キー/
■32104 / inTopicNo.4)  Re[2]: pngファイルをデータベースに登録したい
□投稿者/ YK (7回)-(2009/02/01(Sun) 17:30:14)
No32102 (オショウ さん) に返信
早速のご返答有り難うございます。

教えていただいたHPを参考にしましたが、記述言語がC#ということもあり、
データベースから画像を表示するだけなので、オショウさんと同様の手法をとろうと思います。

保存先のファイルパスをnvarcharに格納し、ImageコントロールのImageurlにそのファイルパスを設定するといった
手法をかんがえたのですが、なにか良い方法がありましたら教えていただけないでしょうか。
引用返信 編集キー/
■32105 / inTopicNo.5)  Re[3]: pngファイルをデータベースに登録したい
□投稿者/ YK (8回)-(2009/02/01(Sun) 18:01:58)
2009/02/01(Sun) 21:51:24 編集(投稿者)

No32103 (やじゅ さん) に返信
早速のご返答ありがとうございます。

やはり、データベースに画像を登録というのは簡単にはできないようですね。
卒研で、過去問をみれたり分野別に過去問で学習できるというようなWebアプリケーションを作成しています。
本来なら一からデータベースやWebアプリケーションについて学んでから、質問するというのが筋ですが、
時間がなく、周りに詳しい人もいなくて・・・という状況で質問させていただきました。

いつかは、質問に答えてあげられる立場になれるよう、これからは基礎から学んでいきたいと思います。
引用返信 編集キー/
■32117 / inTopicNo.6)  Re[4]: pngファイルをデータベースに登録したい
□投稿者/ YK (11回)-(2009/02/01(Sun) 23:12:17)
重ねて質問すみません。データベースにIDと画像データのパスを格納し、それをGridViewから選択し、画像を表示させたいのですが、
画像どころか、Label1にもなにも表示されません。下記のようにプログラムをかいたのですが・・・

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim row As GridViewRow = GridView1.SelectedRow
Dim data As TableCell = row.Cells(2)
Dim datatext As String = data.Text
Image1.ImageUrl = datatext
Label1.Text = datatext
End Sub

原因を考えてみたのですが、恥ずかしながらわかりませんでした。どなたか教えてくださらないでしょうか。
ちなみにデータベースはIDとDATAとゆう順番で型はそれぞれint,varchar(50)というかたちでつくっています。
引用返信 編集キー/
■32124 / inTopicNo.7)  Re[5]: pngファイルをデータベースに登録したい
□投稿者/ ロック (161回)-(2009/02/02(Mon) 09:40:54)
No32117 (YK さん) に返信
DBにはパスだけ保存という方向になっていますが、一応。

>インターネット上と書籍から調べましたが、そのような初歩的なことについては見つけることができませんでした。
翔泳社の回し者じゃないですが、
「Visual Studio 2005 でいってみよう ASP.NET2.0編」ていう本に
載っています。
http://www.wings.msn.to/index.php/-/A-03/978-4-7981-1427-9/

Web上で言うとこの辺
http://www.atmarkit.co.jp/fdotnet/vs2005db/vs2005db_11/vs2005db_11_01.html

本の方は現在会社なので、中身の確認はできませんが
C#とVB.NETの両方が載っていたと記憶しています。
サンプルデータはダウンロード可能なので確認しましたが
C#、VB.NET両方ありますので、参考になるのでは?

引用返信 編集キー/
■32127 / inTopicNo.8)  Re[4]: pngファイルをデータベースに登録したい
□投稿者/ みきぬ (361回)-(2009/02/02(Mon) 10:29:48)
2009/02/02(Mon) 10:55:11 編集(投稿者)

1.DBにバイナリを保存する方法

利点:トランザクション管理が楽
欠点:表示がちょっと面倒

2.ファイルは別途保存して、DBにはパス情報だけ保持する

利点:(特に思いつかなかった)
欠点:トランザクション管理が面倒、運用も面倒(DBとファイルの整合性、バックアップ、etc.)


昔に2の方法で散々苦労した身からすると、1の方法でできるならそっちを勧めたいかなあ。


※typo修正
引用返信 編集キー/
■32183 / inTopicNo.9)  Re[6]: pngファイルをデータベースに登録したい
□投稿者/ YK (12回)-(2009/02/02(Mon) 23:17:28)
No32124 (ロック さん) に返信
ご返答ありがとうございます。
学校の図書館にその本があったので、借りて読んでみようと思います。
引用返信 編集キー/
■32184 / inTopicNo.10)  Re[5]: pngファイルをデータベースに登録したい
□投稿者/ YK (13回)-(2009/02/02(Mon) 23:20:52)
No32127 (みきぬ さん) に返信
ご返答ありがとうございます。
パスで管理するよりファイルそのものを格納するほうが、さまざまな点で優れているようですね。
とても参考になりました。
引用返信 編集キー/
■32192 / inTopicNo.11)  Re[6]: pngファイルをデータベースに登録したい
□投稿者/ はつね (932回)-(2009/02/03(Tue) 09:54:09)
はつね さんの Web サイト
No32184 (YK さん) に返信
> パスで管理するよりファイルそのものを格納するほうが、さまざまな点で優れているようですね。

そうとは限りません。
BLOBデータ(バイナリのでかいファイル)として管理するのではなく、みかけは直接格納しているようなSQL文でとりあつかって、内部的にはDBではなくDBサーバ側の特定のフォルダにファイルそのものを格納するデータ型をもっているデータベースもあります。
# SQL Serverはあてはまらない?

SQL文で取り扱えるかどうかと、内部的な格納方式は別に考えた方がいいです。
つまり
「SQL文でとりあつかえる方法が様々な点で優れているようですね。」
なのではないかと。で、その次に
「SQL ServerだとSQL文で取り扱うにはファイルそのものを格納する方法しかないのですねー。」
となるのではないでしょうか。結論は一緒かも知れませんが、実装方式の制限によるかよらないかは把握して置いた方がいいと思います。

DBは違いますが、Oracle DatabaseのBFILE型とかしらべてみると良いと思いますよ。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -