asp.net 如何在RDLC报告上显示来自数据库的图像

zbwhf8kr  于 2023-01-10  发布在  .NET
关注(0)|答案(2)|浏览(220)

我的RDLC设计:

我想在我的报告查看器上显示来自我的数据库的图像我的reportviewer工作正常我只需要每个选择的图像,我的数据库中已经有每个患者的图像,我只想在我的.aspx页面中显示,我还附上了下面的代码。
我的Aspx页面:

<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>

我的.cs文件:我想在报表查看器上显示数据库中的图像
aspx页面背后的代码在这里

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(); 
        }
    }
1yjd4xko

1yjd4xko1#

显示数据库中的图像非常容易,在image属性中,将source设置为database,将value设置为包含byte[] image的dataset字段。

7cwmlq89

7cwmlq892#

存储Image的数据类型:

varbinary(MAX)

byte[] bytes;
        using (BinaryReader br = new BinaryReader(photo.PostedFile.InputStream))
        {
            bytes = br.ReadBytes(photo.PostedFile.ContentLength);
        }

        SqlCommand cmd = new SqlCommand("insert into img values('@harikesh')", cn);
        cn.Open();
        cmd.Parameters.AddWithValue("@harikesh", bytes);
        int i = cmd.ExecuteNonQuery();
        if (i > 0)
        {
            Response.Write("<script language='javascript'>alert('inserted sucess')</script>");
        }
        else
        {
            Response.Write("<script language='javascript'>alert('NOT sucess')</script>");
        }

        cn.Close();`

-----------在报告视图上查看图像-------------
.xsd文件中的图像数据类型System.Byte[]

相关问题