0

クリスタルレポートに画像を表示しようとしています。以下のコードでは、ファイル ストリームの画像パスを変換し、データ テーブルを介してレポート ソースに追加します。しかし、静止画は表示されません

string path;
DataTable dt = new DataTable();

path = Server.MapPath("~/img/logo.jpg");   
DataColumn column = new DataColumn("Image"); //Create the column.
column.DataType = System.Type.GetType("System.Byte[]"); 
dt.Columns.Add(column);
DataRow row = dt.NewRow();
FileStream fs = new FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read);
Byte[] Image = new Byte[fs.Length];
fs.Read(Image, 0, Convert.ToInt32(fs.Length));
fs.Close();
row["Image"] = Image;
dt.Rows.Add(row);
dss.Tables[0].Merge(dt);
//set dataset to the report viewer.
rptDoc.SetDataSource(dss);
CrystalReportViewer1.ReportSource = rptDoc;
4

1 に答える 1

0

画像をバイト ストリームの形式でデータベースに保存するだけで済みます。Crystal レポートで使用するために元に戻す必要はありません。画像をレポート フィールドにドラッグ アンド ドロップして、画像でフィールド名を呼び出すだけです。表示されます..私はC#でそれをやっていました。それがあなたにとってもうまくいくことを願っています。

于 2013-08-05T04:53:24.543 に答える