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 回答
如果您只是将图像上传到数据库,并将该字段调用到报表,它可能不会在制作时输出任何内容,但会在预览中提供图像,上传图像,任何类型,只需将其调用到报告使用该字段 .
更明确地说,您可以将任何图像转换为二进制序列,存储在db中,稍后在调用要报告的字段时,它将显示您之前转换为二进制的实际图像,