您好,我有这行代码可以从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/

10-11 23:54