2016-05-25 5 views
1

私の最初の.netアプリケーションを構築するので、私の初心者のレベルに忍耐してください。Asp.net C#単一のデータベースレコードから複数の画像を表示

私はユーザーからデータを収集し、SQLに格納しています。各レコードには複数のデータフィールドと最大4つのイメージがあります(はい、非常に大きなレコードを生成しますが、ボリュームは小さくなります)。

ここで、これらの画像をユーザーに表示する必要があります。私は以下のようなページレイアウトを使用してこれを行いたいが、これに対処できるハンドラを実装する方法はわからない。ページに表示されるレコードはクエリ文字列から来ており、唯一の値はquestionIDです。ページのための背後

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Submit_Detail.aspx.cs" Inherits="cs1.Submit.Submit_Detail" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> 
<asp:FormView ID="Submit_tDetail" runat="server" ItemType="cs1.Models.Questions" SelectMethod ="GetQuestion" RenderOuterTable="false"> 
    <ItemTemplate> 
     <div> 
      <h1><%#:Item.KeyObjective %></h1> 
     </div> 
     <br /> 
     <table> 
      <tr> 
       <td> 
        <img src="<%#:Item.ImageFile %>" style="border:solid; height:300px" alt="No Image"/> 
       </td> 
       <td> 
        <img src="<%#:Item.ImageFile2 %>" style="border:solid; height:300px" alt="No Image" /> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <img src="<%#:Item.ImageFile3 %>" style="border:solid; height:300px" alt="No Image"/> 
       </td> 
       <td> 
        <img src="<%#:Item.ImageFile4 %>" style="border:solid; height:300px" alt="No Image" /> 
       </td> 
      </tr> 
      <tr> 
       <td style="vertical-align: top; text-align:left;"> 
        <b>Author:</b><br /><%#:Item.Author %> 
        <br /> 
        <span><b>Submit Date:</b>&nbsp;<%#: Item.SubmitDate %></span> 
        <br /> 
        <span><b>Stem:</b>&nbsp;<%#:Item.Stem %></span> 
        <br /> 
        </td> 
       </tr> 
      </table> 
     </ItemTemplate> 
    </asp:FormView> 
</asp:Content> 

現在のコード:

namespace cs1.Submit 
    { 
    public partial class Submit_Detail : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
    public IQueryable<Questions> GetQuestion([QueryString("QuestionID")] int? QuestionId) 
    { 
     var _db = new cs1.Models.ProductContext(); 
     IQueryable<Questions> query = _db.Questions; 
     if (QuestionId.HasValue && QuestionId > 0) 
     { 
      query = query.Where(p => p.QuestionID == QuestionId); 
     } 
     else 
     { 
      query = null; 
     } 
     return query; 
    } 
} 
} 

SQLサーバー内の各画像はbinaryData、ContentTypeを、とimagenameのための3つの列があります。

いるimagefile、 Image1Content、 Image1Name、 Image2File、 Image2Content、 Image2Name、 など

+0

私はこのコードブロックを正しく認識することができません。どうしてわかりません,,,インデントしていますか? –

+0

これを見て:http://stackoverflow.com/questions/7390983/convert-from-binary-data-to-an-image-control-in-asp-net –

+0

あなたは私が推測しているハンドラあなたはHttpHandlerを意味しますか?あなたがそうした場合、これはあなたの道にあなたを得るかもしれないhttp://stackoverflow.com/questions/1738020/bytearray-to-image-asp-net。 HttpHandlersの概念も網羅しています。 –

答えて

1

正直ではない、これは見つけるためにかかったどのように多くのリンクと検索してください、このリンクASP.NET images from SQLの記事ができました私が必要としていた状況に素早く簡単に対応できます。すべてのコードは、(新しい)コードの背後にあるaspxページにあります。ここに、画像を取り込むために働いている新しいaspxページコードがあります。

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> 
<asp:FormView ID="Submit_tDetail" runat="server" ItemType="cs1.Models.Questions" SelectMethod ="GetQuestion" RenderOuterTable="false"> 
    <ItemTemplate> 
     <div> 
      <h1><%#:Item.KeyObjective %></h1> 
     </div> 
     <br /> 
     <table> 
      <tr> 
       <td> 
        <asp:Image id="Image1" AlternateText="No Image" runat="server" Height="200px" ImageUrl='<%# "data:image/jpg;base64,"+ Convert.ToBase64String((byte[])Eval("ImageFile")) %>' /> 
       </td> 
       <td> 
        <asp:Image id="Image2" AlternateText="No Image" runat="server" Height="200px" ImageUrl='<%# "data:image/jpg;base64,"+ Convert.ToBase64String((byte[])Eval("ImageFile2")) %>' /> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Image id="Image3" AlternateText="No Image" runat="server" Height="200px" ImageUrl='<%# "data:image/jpg;base64,"+ Convert.ToBase64String((byte[])Eval("ImageFile3")) %>' /> 
       </td> 
       <td> 
        <asp:Image id="Image4" AlternateText="No Image" runat="server" Height="200px" ImageUrl='<%# "data:image/jpg;base64,"+ Convert.ToBase64String((byte[])Eval("ImageFile4")) %>' /> 
       </td> 
      </tr> 
      <tr> 
       <td style="vertical-align: top; text-align:left;"> 
        <b>Author:</b><br /><%#:Item.Author %> 
        <br /> 
        <span><b>Submit Date:</b>&nbsp;<%#: Item.SubmitDate %></span> 
        <br /> 
        <span><b>Stem:</b>&nbsp;<%#:Item.Stem %></span> 
        <br /> 
       </td> 
      </tr> 
     </table> 
    </ItemTemplate> 
</asp:FormView> 
</asp:Content> 
関連する問題