0

datarowクラスでdatatableを初期化します。画像フィールドがあります。画像を初期化した後、RDLCレポートには画像は表示されませんが、他の列が表示されます。私のRDLCレポートはピクチャーボックスコントロールを保持しています。

Image Source=Database
MIMM Type=Image/Bitmap
Value==Fields!Images.Value 

これが私のコードスニペットです。

DataTable dt = new DataTable();

dt.Columns.Add("ImageId");
dt.Columns.Add("ImageName");
dt.Columns.Add("Images");
dt.Columns.Add("Barcode");

        DataTable mydata = GetDataSet();
        DataRow drow = dt.NewRow();

        drow["ImageId"] = mydata.Rows[0][0];
        drow["ImageName"] = mydata.Rows[0][1];
        drow["Images"] = mydata.Rows[0][2]; //This is image row
        drow["Barcode"] = mydata.Rows[0][3];
        dt.Rows.Add(drow);

        ReportDataSource rds = new ReportDataSource("DataSet1", dt);
        ReportViewer1.LocalReport.DataSources.Clear();
        ReportViewer1.LocalReport.DataSources.Add(rds);
        ReportViewer1.LocalReport.Refresh();

そしてここにレポートビューアコードがあります:

<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" 
    Font-Size="8pt" InteractiveDeviceInfos="(Collection)" 
    WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt">
 <LocalReport ReportPath="Reports\Report1.rdlc">
    </LocalReport>
</rsweb:ReportViewer>

データセットの画像データ型String.Byte[]はすでに変更しています。しかし、運はありません。データ行なしでデータテーブルを設定すると、画像がはっきりと表示されます。どうしてか分かりません?私はそれをグーグルで検索しましたが、完璧な解決策を見つけることができません。助けてください(英語が下手でごめんなさい)

4

1 に答える 1

0

を使用して列「画像」のタイプを指定する必要があります

DataColumn column = new DataColumn("Images");
column.DataType = System.Type.GetType("System.Byte[]"); //OR the type you want

その後、この列をテーブルに追加します

于 2013-06-06T06:13:08.567 に答える