2011-12-04 11 views
1

書籍データベース(現在は合計2冊)があります。各書籍には、画像の名前を含む「画像」という行があります。 たとえば、 cprog.jpegとasm.jpegリピータコントロールを使用してデータベースから画像を表示するC#

私はリピーターを使って、名前、著者などの本の情報を表示できますが、表示するイメージを取得する方法はわかりません。画像は画像フォルダに保存されます。

ここは問題のaspxですか?それはbooknameとdescriptionだけを表示しているからです。

<asp:Repeater ID="Repeater1" runat="server"> 
     <ItemTemplate> 
<%# DataBinder.Eval(Container.DataItem, "BookName") %> 
<hr> 
<%# DataBinder.Eval(Container.DataItem, "BookDescription") %> 
<td width="100px"> 
    <p align="left"> 


<img src= '<%# DataBinder.Eval(Container.DataItem, "Image") %>.jpeg' 
alt="" style="height:200px;width:200px;border:1px solid gray;"/> 

    </td> 
    </p> 


一度
String connectionString = "Data Source=" + Server.MapPath(@"~\App_Data\bookDB.db"); 
     String selectCommand = String.Format("Select * from Book where CategoryName = '{0}'", Request.QueryString); 
     SQLiteConnection myConnection = new SQLiteConnection(); 
     myConnection.ConnectionString = connectionString; 
     myConnection.Open(); 
     SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(selectCommand, myConnection); 

     myConnection.Close(); 
     // DataSet ds = new DataSet(); 
     dataAdapter.Fill(ds2); 


     DataTable table = new DataTable(); 
     dataAdapter.Fill(table); 
     Repeater1.DataSource = table; 
     Repeater1.DataBind(); 

の背後にあるコードIは、プロジェクトを実行したときに、壊れたイメージは、第二のために登場し、その後、姿を消しました。私はこの2日間を無駄にしようとしました... ありがとうございます。

+0

次回はお問い合わせください。 – Bastardo

答えて

2

は、画像を表示する必要があり、画像フォルダが/imagesであると仮定すると、フォルダ名を追加し、(すでにあなたの質問で述べたように、データベース内の)拡張子を削除します:

<img src='/images/<%# DataBinder.Eval(Container.DataItem, "Image") %>' 
alt="" style="height:200px;width:200px;border:1px solid gray;"/> 

希望の結果が得られない場合は、html出力を確認して実際のURLと比較してください。

+0

これは、第2の画像を表示するが、第1の画像は表示しない。なぜ、第1の画像を表示しないのか?両方の画像が画像フォルダにあることを心に留めてください –

+0

データベース内の拡張子は同じではないと思います..この作品をありがとう... –

0

Webサーバがどこからあなたのイメージを提供するために知っているので、あなたは、あなたの画像フォルダのパスに配置する必要があります。データベース内の自分のイメージ名がすでに削除する必要が拡張子が含まれているので

また
<img src= 'images/<%# DataBinder.Eval(Container.DataItem, "Image") %>' 
alt="" style="height:200px;width:200px;border:1px solid gray;"/> 

それはリピーターバインディングからのものです。あなたの例に基づいて

上記すなわちすることを決意します:

<img src= 'images/cprog.jpeg' alt="" style="..."/> 
0

このコードを使用してビットマップイメージをasp.netページに読み込むことができます。

<img src="data:image/jpeg;base64,<%# ((string)Container.DataItem) %>" 
width="100" height="100"/> 
関連する問題