正如问题所暗示的,我最难以在水晶报告上显示图像(varbinary(max))。我已经阅读了许多类似的问题和其他链接,包括http://www.hexcentral.com/articles/crystal-images.htm
下面的这个问题这说明我要做的就是将图像字段拖到报表中。事实证明,这样做是徒劳的。
getData
这是我所拥有的全部代码,基本上只是为报表创建数据源。 我尝试更改数据类型,尝试修改我的app.config,但没有任何帮助。
我看到张贴了类似的代码,但希望我能得到我的问题的答案。
致谢
答案 0 :(得分:0)
您是否已将Crystal Report Image处理程序添加到webconfig文件?
这是最重要的部分,没有它,您将不会在Crystal Report中看到图像。您需要在Web.Config的部分中添加以下内容。
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
对于Windows应用程序,使用图像数据类型将图像存储在sql服务器上。 将表数据附加到Crystal报表。
private void button2_Click(object sender, EventArgs e)
{
string str = "select photo from tbl_img where id='" + textBox2.Text + "'";
string ConStr = @"Server=COMP7;Database=ImageTest;User Id=sa;Password=cos123";
SqlConnection con = new SqlConnection(ConStr);
con.Open();
SqlDataAdapter da = new SqlDataAdapter(str, con);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
byte[] imgdata = new byte[0];
imgdata = (byte[])dt.Rows[0][0];
MemoryStream ms = new MemoryStream(imgdata);
pictureBox2.Image = Image.FromStream(ms);
}
else
{
MessageBox.Show("No images in a table");
}
}
从“字段资源管理器”->“数据库字段”->“表名”->“列名”中拖动水晶报表上的图像字段