您的位置:首页 > 数据库

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);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: