将 byte[] 作为参数传递给报表查看器
本文关键字:报表 参数传递 byte | 更新日期: 2023-09-27 18:30:37
您好,我有这行代码从 Sql 数据库加载图像:
MemoryStream mem;
void zobraz_logo()
{
try
{
SqlDataAdapter dataAdapter = new SqlDataAdapter(new SqlCommand("SELECT logo FROM firma WHERE id = 1", spojeni));
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
if (dataSet.Tables[0].Rows.Count == 1)
{
Byte[] data = new Byte[0];
data = (Byte[])(dataSet.Tables[0].Rows[0]["logo"]);
mem = new MemoryStream(data);
}
}
catch (Exception)
{
MessageBox.Show("");
}
}
现在我尝试将其作为参数传递给ReportViewer:
eportParameter[] parameter = new ReportParameter[18];
parameter[18] = new ReportParameter("rp_logo", Image.FromStream(mem)); // this is the issue line
this.firmaTableAdapter.Fill(this.dataset_voucher.firma);
this.zajezdTableAdapter.Fill(this.dataset_voucher.zajezd,vybrana_akce,klientClass.Rocnik());
this.reportViewer1.LocalReport.SetParameters(parameter);
this.reportViewer1.RefreshReport();
}
我正在尝试将图像作为参数加载到ReportViewer的图像中,我希望可以这样做。如果没有,请您向我提出最好的方法吗?
在提到的行上,我收到错误:Argument 2:cannot convert from System.Drawing.Image to String[]
谢谢你的时间。
我从未使用过报表查看器,但在 Crystal 报表中,您将参数/字段创建为对象类型,并将byte[]
传递给该参数/字段。
很好,正如您在MSDN中看到的那样,您可以看到接受字符串,字符串数组和布尔值ReportParameter
。
您应该使用其中之一。
我不知道图像的用途,但您可以在报告中使用它的路径
parameter[18] = new ReportParameter("rp_logo", new string[]{dataImage});