无法在SQL Server - C#应用程序的Crystal Reports上显示图像

时间:2013-06-11 05:29:20

标签: c# sql-server-2005 crystal-reports

C#应用程序浏览文件中的图片并将其作为byte []上传到sql server 2005数据库。当表打开时(使用管理工作室),显示图片字段显示“二进制数据”。应用程序运行时,除了图片字段之外,报表上将显示同一表中的每个其他字段。在数据库上,图片字段的类型是图像。在水晶报告上,图片是blob字段。水晶报告上不显示图像。我正在使用数据集。非常感谢您的帮助!


@ C_Major,你想看到的代码部分是什么?我使用向导使用数据集创建水晶报告。数据集基于我在数据库中创建的视图,并且有一个报表管理器对话框,其中包含一个组合框,其中填充了之前保存的名称列表。用户从组合中选择名称并输入显示报告按钮。然后执行以下代码。

    void studyreport()
    {
        DataTable dtindividual = register.studyreport(cmbName.Text);
        DataTable dtfetchpic = register.fetchpic(cmbName.Text);

        byte[] MyData = new byte[0];

        DataRow myRow;
        myRow = dtfetchpic.Rows[0];

        MyData = (byte[])myRow["Picture"];

        MemoryStream stream = new MemoryStream(MyData);

        individual.SetDataSource(dtindividual);

        reportviewer.viewer.ReportSource = individual;
        reportviewer.ShowDialog();
        this.Close();
    }

1 个答案:

答案 0 :(得分:0)

如果你可以将图片上传到数据库,并将该字段调用到报告中,它可能不会在制作时输出任何内容,但会在预览中提供图像,上传图像,任何类型并只需调用它使用该字段报告。

为了更明确,您可以将任何图像转换为二进制序列,存储在db中,稍后在调用要报告的字段时,它将显示您之前转换为二进制的实际图像,