2016-06-26 3 views
0

У моего приложения asp.net есть отчет, который отображает информацию о данном футболисте. Когда я пытаюсь отобразить данные таблицы на странице asp.net, фотография не отображается, хотя остальная часть информации делает. Как я могу правильно отобразить изображение?Изображение не отображается в отчете

Я хранил фотографию как byte[].. и по набору данных Я заполняю отчет. Я также добавил поле под названием Photo с типом System.Byte[].

Section 2

я перетащил и бросил объект в из моего приложения:

enter image description here

Я знаю, что я не посылать пустые данные, так как массив байтов, очевидно, в моей базе данных, и это возвращает целый объект.

enter image description here

public partial class PlayersReport : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    if (!IsPostBack) 
    { 
     var x = Server.MapPath("~"); 

     int playerID = Convert.ToInt32(Request.QueryString["playerID"]); 
     PlayersDataSet players = new PlayersDataSet(); 
     PlayersDataSet.PlayersTableDataTable PlayersDT = new PlayersDataSet.PlayersTableDataTable(); 
     var player = eSavez_Servis.Data.Services.DAPlayers.GetByPlayerId(playerID); 

     PlayersDT.AddIgraciTableRow(player.FirstName, player.LastName, player.ClubNumber, player.ClubName, player.Photo, player.IDNumber.ToString()); 

     players.Tables["PlayersTable"].Merge(PlayersDT); 

     rpt_Players RPT = new rpt_Players(); 
     RPT.SetDataSource(players); 
     CrystalReportViewer1.ReportSource = RPT; 

    } 
    } 
} 

ответ

1

Благодарим за помощь, я ценю это, я решил ошибку прошлой ночью, и проблема была очень тупой, в поле отчета о том, что я перетаскиваю атрибут DataTable под названием Photo, не был изменен на system.byte [] даже если я изменил его на dataTable из моего dataTableSet, он как-то не обновился и остался неподвижным как строка, поэтому мое изображение не могло загружаться в поле типа string, поэтому я удалил DataTable из полей базы данных (эксперт базы данных) и переместил его назад, и перетащил поля снова, чтобы сообщить, и все прошло отлично!

:)

+0

Рад узнать, что он решен! Хороший день :) – Furtiro

+0

Да, и еще раз спасибо за ваши усилия, надеюсь, что мы останемся на связи и надеемся, что увижу вас вокруг :) –

2

Надеется, что это может помочь вам: http://www.aspsnippets.com/Articles/Display-image-from-database-in-Crystal-Report-in-ASPNet-using-C-and-VBNet.aspx

Так используйте DataTable, чтобы связать свой отчет, в случае, если снимки вашего децибел не хранятся надлежащим образом и CR не может связать их.

EDIT: Хм, я просто вижу, что вы устанавливаете свой атрибут фотографии в заголовке страницы, чтобы он не работал! Переместите его в DetailSection с другим атрибутом вашего класса, а в PageHeader просто добавьте текстовое поле с надписью «Фотография».

ВТОРОЙ РЕДАКТИРОВАНИЕ: У меня есть несколько вопросов, которые помогут вам: Вы установили точку останова для просмотра данных в вашем DataTable/dataSet перед загрузкой CR? И именно dataType и данные. Вы видите изображение в превью? Вы проверили кодировку изображения в базе данных? Проблема может быть только здесь, данные кодирования неправильно интерпретируются CR. Я искал эту проблему для вас, и все проблемы, которые я видел, это кодирование в db или декодирующей части.

Вы пытались использовать DataBind?

CrystalReportViewer1.ReportSource = RPT; 
CrystalReportViewer1.DataBind(); 

В отредактированный код позади Я не понимаю, что вы делаете здесь, почему бы не выбрать * из вашей БД непосредственно в наборе данных? Зачем хранить в var player? этот тип данных может пойти не так, и из-за этого ваше изображение не может быть загружено.

+0

Я проверил эту ссылку раньше, и мне было интересно, что происходит, потому что я сделал почти такой же, как тот парень, который написал этот пост, и интересное, что, например, мой объект имеет 5 атрибутов, имя , Фамилия, ID, фотография и т. Д.и все они отображаются в отчете, просто отсутствует фотография, а моя фотография хранится в таблице базы данных так же, как и другие атрибуты, и я действительно не знаю, почему она не отображается:/ –

+0

Но вы проверили ее с помощью DataTable напрямую перетащить ваши данные? – Furtiro

+0

Что вы имеете в виду, когда говорите «вы проверили это с помощью DataTable»? –

Смежные вопросы