您好,我有这行代码可以从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的Image中,希望可以这样做。如果不能,请您向我提出最好的建议吗?
在上述行中,我收到错误:
Argument 2:cannot convert from System.Drawing.Image to String[]
感谢您的时间。
最佳答案
很好,正如您在MSDN中所见,您可以看到ReportParameter
接受字符串,字符串数组和布尔值。
您应该使用其中之一。
我不知道图像的用途,但是您可以在报告中使用它的路径
parameter[18] = new ReportParameter("rp_logo", new string[]{dataImage});
关于c# - 将byte []作为参数传递给ReportViewer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18698890/