Изображение не отображается в crystal report в приложении windows vs.net 2005 год
Я использую хранимую процедуру для извлечения данных из таблицы. поле photo сохраняется в моей БД как тип данных изображения, при отладке datatable show photo as system.byte[], а время разработки crystal report preview show photo, но после выполнения приложения photo не отображается в отчете.
Как можно показать фотографию в отчете. пожалуйста, помогите мне.
Что я уже пробовал:
Код Формы Средства Просмотра Отчетов:-
использование системы;
использование системы.Коллекции.Общий;
использование системы.ComponentModel;
использование System.Data;
использование системы.Рисование;
использование System.Text;
использование системы.Окна.Формы;
id_card пространства имен
{
общественности частичного класс form1 : форма
{
Эми OBJemp = новый пуп();
открытый form1()
{
метод InitializeComponent();
}
частная строка _employeeId;
общественного строка кодсотрудника
{
get { return _employeeId; }
set { _employeeId = значение; }
}
частный недействительными методе form1_load(объект отправителя, EventArgs в электронной)
{
DataTable DT = новый DataTable();
DT = OBJemp.CreateTempTable(OBJemp.Get_report(кодсотрудника));
StudentIdCard crspt = новая студенческая карта();
крспт.База данных.Таблицы[0].SetDataSource(DT);
crystalReportViewer1.ReportSource = crspt;
crystalReportViewer1.Zoom(1);
}
частная crystalReportViewer1_Load недействительным(объект отправителя, EventArgs в электронной)
{
это.crystalReportViewer1.RefreshReport();
}
}
}
Печать Кода Кнопки:-
строки Кодсотрудника = "";
частная btnReport_Click недействительным(объект отправителя, EventArgs в электронной)
{
столбец EmployeeID = "";
по каждому элементу (ячейки datagridviewrow р в dgvEmp.Строк)
{
if (r.Cells[0].Value != null)
{
if (r.Cells[0].Value.Метод toString().ToUpper() == "TRUE")
{
EmployeeId = EmployeeId + "," + r.ячейки[1].Значение;
}
}
}
Форма form1 ФРМ = новые формы form1();
ФРМ.кодсотрудника = Кодсотрудника;
ФРМ.Показать();
Функция Get_Report:-
общественный класс sqldatareader Get_report(строка EmployeesID)
{
SqlParameter[] pram = новый SqlParameter[2];
pram[0] = новый SqlParameter("@type", 8);
pram[1] = новый SqlParameter("@EmployeeId", EmployeesID);
верните SqlHelper.ExecuteReader(Constr, "IDCard", CommandType.Хранимая процедура, коляска);
}
хранимая процедура :-
Изменить процедуру [dbo].[Удостоверение личности]
@EmployeeName NVARCHAR(50) = NULL
,@EmployeeId NVARCHAR(1000) = NULL
,@CompCode NVARCHAR(3) = NULL
,@BloodGroup NVARCHAR(3) = NULL
,@DepartmentCode NVARCHAR(50) = NULL
,@photo image=null
,@TermDate DateTime = NULL
,@DOB DateTime = NULL
,@type INT = 1
,@ID INT = 1
АС
НАЧАТЬ
-- Установить параметр nocount на добавленную предотвратить дополнительные результирующие наборы
-- вмешательство в операторы SELECT.
УСТАНОВИТЕ NOCOUNT ON;
IF (@type = 1)
НАЧАТЬ
Выберите EmployeeId
,Корпус [Код Завершения]
Когда 01
ЗАТЕМ "ОП"
ЕЩЕ
'NC'
Конец как компания
,Имя сотрудника
,Группа крови
,DepartmentCode
,TermDate
,ДАТА РОЖДЕНИЯ
,EmployeeCode
Из Master_Employee где TermDate имеет нулевой порядок по убыванию 1
КОНЕЦ
Иначе если (@type = 2)
НАЧАТЬ
выберите отчетливый, код выполнения, случае код завершения]
Когда 01
ЗАТЕМ "ОП"
ЕЩЕ
'NC'
Конец как орг
от Master_Employee
КОНЕЦ
Иначе если (@type = 3)
НАЧАТЬ
ВЫБИРАТЬ
столбец EmployeeID
,Корпус [Код Завершения]
Когда 01
ЗАТЕМ "ОП"
ЕЩЕ
'NC'
Конец как компания
,Имя сотрудника
,Группа крови
,DepartmentCode
,TermDate
,ДАТА РОЖДЕНИЯ
Из Master_Employee, где TermDate равен NULL, а EmployeeId =@EmployeeId и CompCode =@CompCode
КОНЕЦ
Иначе если (@type = 4)
НАЧАТЬ
ВЫБИРАТЬ
столбец EmployeeID
,Корпус [Код Завершения]
Когда 01
ЗАТЕМ "ОП"
ЕЩЕ
'NC'
Конец как компания
,Имя сотрудника
,Группа крови
,DepartmentCode
,TermDate
,ДАТА РОЖДЕНИЯ
Из Master_Employee, где TermDate равен NULL, а EmployeeId =@EmployeeId
КОНЕЦ
Иначе если (@type = 5)
НАЧАТЬ
ВЫБИРАТЬ
столбец EmployeeID
,Корпус [Код Завершения]
Когда 01
ЗАТЕМ "ОП"
ЕЩЕ
'NC'
Конец как компания
,Имя сотрудника
,Группа крови
,DepartmentCode
,TermDate
,ДАТА РОЖДЕНИЯ
От Master_Employee, где TermDate равен NULL, а CompCode=@CompCode
КОНЕЦ
Иначе если (@type = 6)
НАЧАТЬ
ВЫБИРАТЬ
столбец EmployeeID
,Корпус [Код Завершения]
Когда 01
ЗАТЕМ "ОП"
ЕЩЕ
'NC'
Конец как компания
,Имя сотрудника
,Группа крови
,DepartmentCode
,TermDate
,ДАТА РОЖДЕНИЯ
Из Master_Employee, где TermDate равен NULL, а EmployeeName - "+@EmployeeName+'%'
КОНЕЦ
Иначе если (@type = 7)
НАЧАТЬ
ВЫБИРАТЬ
столбец EmployeeID
,Корпус [Код Завершения]
Когда 01
ЗАТЕМ "ОП"
ЕЩЕ
'NC'
Конец как компания
,Имя сотрудника
,Группа крови
,DepartmentCode
,TermDate
,ДАТА РОЖДЕНИЯ
Из Master_Employee где TermDate null и код завершения=@код завершения и EmployeeName как "+@EmployeeName+'%'
КОНЕЦ
Иначе если (@type = 8)
НАЧАТЬ
Выберите e.EmployeeCode
,e.EmployeeId
е.EmployeeName,Случае Код Завершения
Когда 01
ЗАТЕМ "ОП"
ЕЩЕ
'NC'
Конец как компании, электронной.Кодсотрудника +'/'+ Чехол Код Завершения
Когда 01
ЗАТЕМ "ОП"
ЕЩЕ
'NC'
Конец как empid в , е.BloodGroup, Эл.Доб е.TermDate ,стр. Цены от Master_Employee е левое соединение Master_EmployeePhoto п о
(e.EmployeeCode =p.EmployeeCode ), где TermDate равен NULL, а EmployeeId-in( Select * from dbo.BreakStringIntoRows(@EmployeeId))
КОНЕЦ
КОНЕЦ