※ ChatGPTを利用し、要約された質問です(原文:<ASP.NET+C#+MSDE> JPEG画像の表示ができません。)
<ASP.NET+C#+MSDE> JPEG画像の表示ができません。
このQ&Aのポイント
ASP.NET+C#+MSDEで開発を行っており、JPEG画像の表示ができません。
MSDEのテーブルにImage型の項目を登録し、ASP.NETのSQL文を書いて画像を取得して表示しようとしていますが、表示されるのは「×」マークだけです。
設定の問題なのかどうかわからないので、アドバイスをお願いします。
<ASP.NET+C#+MSDE> JPEG画像の表示ができません。
こんばんわ。
ASP.NET+C#+MSDEで開発を行っております。
MSDEのあるテーブルにImage型の項目を用意し、Access2000でリンクを張って、JPEG形式のファイルを登録しました。
ASP.NETの方のSQL文を書いて、画像を取得して表示させようとするのですが、「×」マークしか表示されません。IIS等の設定が悪いのでしょうか?
コードはこんな感じです。
================================================
SqlConnection sqlconn = new SqlConnection(ConfigurationSettings.AppSettings["DSNSTRING"]);
SqlCommand sqlcmd = new SqlCommand("SELECT 画像 FROM 画像 WHERE 車番=@id",sqlconn);
//パラメータの設定
sqlcmd.Parameters.Add("@id",SqlDbType.Int).Value = productid;
//実行する
SqlDataReader sqlreader;
sqlconn.Open();
sqlreader = sqlcmd.ExecuteReader();
if(sqlreader.Read())
{
byte [] b = (byte[])sqlreader.GetValue(0);
Response.ContentType = "image/pjpeg";
Response.BinaryWrite(b);
}
else
{
Response.StatusCode = (int)HttpStatusCode.NotFound;
Response.End();
return;
}
// 出力を閉じて終了
Response.End();
================================================
どなたかアドバイスください。お願いします。
お礼
アドバイスありがとうございます。 image/jpegもやってみましたがダメでした。データをGIF形式にしてimage/gifを試してみましたがダメでした。
補足
できましたっ! コード自体の問題じゃなくて、SQLServerへのデータの登録方法が根本的に間違っていたようです。 基本的に私のコードで表示するのImageにあるBLOB型のデータですよね。Accessでリンクを張って登録すると、OLEオブジェクト型のデータとして登録されてしまいます。 で、データ的には存在しているけど、"Image/jpeg"等にもならず、結果「×」ボタンを表示していたようです。 マイクロソフトの技術情報に「Visual C#.NETでADO.NETを使用したBLOBデータの読み取りと書き込みの方法」ってのがありましたので、参考にしてデータを登録したらできました。 http://support.microsoft.com/default.aspx