C#水晶报表显示sqlserver2000储存的图片 C#水晶报表动态显示sqlserver储存的图片
2009-08-30 15:21
441 查看
首先在项目表中添加水晶报表要用的img表 DataTable1 img字段类型为System.Byte[] 切忌一定为System.Byte[] c#自认为System.Byte, 【】自己添加。在需要显示的地方写代码如下
GlassBbiaoDataSet.ImageDataTable tbl2 = new GlassBbiaoDataSet.ImageDataTable();
private void fmReport_Load(object sender, EventArgs e)
{
string cmdText = "";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = clsData.connStr;
SqlCommand cmd = new SqlCommand("", conn);
SqlDataReader rd;
if (ddh != "")
{
cmdText = "select * from VIWp where 订单号='" + ddh + "'";
cmd.CommandText = cmdText;
try
{
conn.Open();
rd = cmd.ExecuteReader();
gldst = new GlassBbiaoDataSet();
gldst.VIWp.Load(rd);
Cpt21.SetDataSource((DataTable)gldst.VIWp);//Cpt21是主报表
string sqlImage = "select imagea from Image where picid='" + ddh + "'";
SqlDataReader drd = null;
long maxLenth = 10000000;
Byte[] bytImage = new Byte[maxLenth];
long imgLenth;
GlassBbiaoDataSet.DataTable1DataTable dTable = new GlassBbiaoDataSet.DataTable1DataTable();
try
{
cmd.CommandText = sqlImage;
drd = cmd.ExecuteReader();
while (drd.Read())
{
drd.GetBytes(0, 0, bytImage, 0, (int)maxLenth);
GlassBbiaoDataSet.DataTable1Row drow = dTable.NewDataTable1Row();
drow.img = bytImage;
dTable.Rows.Add(drow);
}
}
catch { };
// picrep rpt = new picrep();
// rpt.SetDataSource((DataTable)dTable);
//tbl2.Load(clsData.getReader(sqlImage));
Cpt21.Subreports["picrep.rpt"].SetDataSource((DataTable)dTable);//picrep 子报表
//Cpt21.Refresh();
//Cpt21.Refresh();
rd.Close();
conn.Close();
}
catch (Exception E)
{
MessageBox.Show(E.Message);
}
}
GlassBbiaoDataSet.ImageDataTable tbl2 = new GlassBbiaoDataSet.ImageDataTable();
private void fmReport_Load(object sender, EventArgs e)
{
string cmdText = "";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = clsData.connStr;
SqlCommand cmd = new SqlCommand("", conn);
SqlDataReader rd;
if (ddh != "")
{
cmdText = "select * from VIWp where 订单号='" + ddh + "'";
cmd.CommandText = cmdText;
try
{
conn.Open();
rd = cmd.ExecuteReader();
gldst = new GlassBbiaoDataSet();
gldst.VIWp.Load(rd);
Cpt21.SetDataSource((DataTable)gldst.VIWp);//Cpt21是主报表
string sqlImage = "select imagea from Image where picid='" + ddh + "'";
SqlDataReader drd = null;
long maxLenth = 10000000;
Byte[] bytImage = new Byte[maxLenth];
long imgLenth;
GlassBbiaoDataSet.DataTable1DataTable dTable = new GlassBbiaoDataSet.DataTable1DataTable();
try
{
cmd.CommandText = sqlImage;
drd = cmd.ExecuteReader();
while (drd.Read())
{
drd.GetBytes(0, 0, bytImage, 0, (int)maxLenth);
GlassBbiaoDataSet.DataTable1Row drow = dTable.NewDataTable1Row();
drow.img = bytImage;
dTable.Rows.Add(drow);
}
}
catch { };
// picrep rpt = new picrep();
// rpt.SetDataSource((DataTable)dTable);
//tbl2.Load(clsData.getReader(sqlImage));
Cpt21.Subreports["picrep.rpt"].SetDataSource((DataTable)dTable);//picrep 子报表
//Cpt21.Refresh();
//Cpt21.Refresh();
rd.Close();
conn.Close();
}
catch (Exception E)
{
MessageBox.Show(E.Message);
}
}
相关文章推荐
- 解决水晶报表中动态加载的图片或利用水晶报表创建的图表不显示图片的方法
- 水晶报表 动态控制图片显示 Changing pictures dynamically in Crystal Report
- 水晶报表显示动态图片
- 水晶报表中显示动态图片
- 如何在水晶报表中动态显示任意格式的图片?
- 【水晶报表之图片篇-b】 CR 11以下版本动态显示图片(数据库保存图片路径)
- 水晶报表中如何动态加载图片时显示不了图片的可能原因之一
- 水晶报表中动态显示图片
- 在水晶报表中动态显示任意格式的图片
- Cognos报表如何动态显示图片
- 水晶报表中如何动态加载图片(图片文件版本及数据库版本)
- vb.net使用水晶报表显示动态Dataset的数据
- 水晶报表显示图片
- 关于水晶报表设计中 根据条件显示与隐藏图片
- 水晶报表动态表数据显示的问题
- 【水晶报表之图片篇-a】 动态加载图片(图片文件版本及数据库版本)
- [水晶报表]动态加载图片(签名)
- C# 条码标签打印程序,RDLC报表动态显示多条码标签的方法
- 水晶报表的图片在服务器上无法显示的解决办法
- C#中, 动态的将图片传递给ReportViewer中的报表.