C# – How to display image from database on RDLC report

asp.netcrdlcreporting-services

My RDLC Design:

http://imgur.com/a/dglzS

I want to show image on my report Viewer from my database my reportviewer is working fine I just need an image for each selection and I have already images in my database for each patient I just want to show that here in my .aspx page I also attached the code below.

My Aspx page:

<body >
 <form id="form1" runat="server">
    <div class="auto-style1">
      <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
          <table class="auto-style2">
            <tr>
              <td class="auto-style5">  &nbsp;&nbsp;
             <asp:Label ID="Label1" runat="server" CssClass="auto-style4" 
           Text="Patient Report"></asp:Label>
       <asp:DropDownList ID="DropDownPat" runat="server" Height="16px"  
  Width="157px" AutoPostBack="True" 
 OnSelectedIndexChanged="DropDownPat_SelectedIndexChanged">
 <asp:ListItem></asp:ListItem>
 </asp:DropDownList>
</tr>
 <tr>
   <td class="auto-style3">
     <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" Height="205px" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="751px">
       <LocalReport ReportPath="Report1.rdlc">
         <DataSources>
            <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1" />
        </DataSources>
       </LocalReport>
      </rsweb:ReportViewer>
     <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetData" TypeName="MedImage.DataSet1TableAdapters.DataTable1TableAdapter"></asp:ObjectDataSource>
          </td>
         </tr>            
        </table>    
    </div>
    </form>
</body>

My .cs file:
I want to show image on report viewer from my database

Code behind aspx page are here

public partial class PatientReport : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {                
            if (!IsPostBack)
            {             
                populateDropDownPat();
            }
        } 
        private void populateDropDownPat()
        {
          try
            {
             patientCollection pcal = (new patientBAL()).GetAllDetailspatient();
                DropDownPat.DataSource = null;
                DropDownPat.DataSource = pcal;
                DropDownPat.DataTextField = "patientName";
                DropDownPat.DataValueField = "PatientID";
                DropDownPat.DataBind();
                DropDownPat.Items.Insert(0, new ListItem("--Select Patient--"));
            }
            catch(Exception ex)
            {
            }        
        }
     protected void DropDownPat_SelectedIndexChanged(object sender, EventArgs e)
        {
          string name = DropDownPat.SelectedItem.Text;
          patientCollection pcal = (new 
          patientBAL()).GetDetailsByPatientName(name);
          ReportViewer1.Visible = true;
          this.ReportViewer1.LocalReport.EnableExternalImages = true;
          this.ReportViewer1.LocalReport.ReportPath = "Report1.rdlc";
          ReportViewer1.LocalReport.DataSources.Clear();
          ReportDataSource rds = new ReportDataSource("DataSet1", pcal);
          this.ReportViewer1.LocalReport.DataSources.Add(rds);
         this.ReportViewer1.LocalReport.Refresh(); 
        }
    }

Best Answer

It's quite easy to show images from database. On the image property set the source to database and the value to dataset field that contains the byte[] image.

enter image description here