У меня есть более чем 10-летний веб-сайт ASP.net VB.Net, который я унаследовал, и я пытаюсь перейти с веб-сайта на веб-приложение. Одна из страниц - это страница отчетов, которая загружает элементы управления Reportviewer на основе выпадающего списка, но я получаю следующую ошибку во время выполнения: «Произошла ошибка во время обработки отчета.
Тип, указанный в свойстве TypeName ObjectDataSource '', не найден. "
Сейчас я искал лучшую часть пары дней, и на основании того, что я нашел из Типизированный набор данных, не распознанный при перемещении в другой проект, сумел восстановить XSD. Я также изменил свойства XSD «Build Action» на «Content», как это было предложено кем-то другим, наряду с установкой «Custom Tool» на «MSDataSetGenerator», но сообщение об ошибке по-прежнему остается.
XSD сгенерирован, я вижу класс и создаю его экземпляр, и из сообщения видно, что TypeName для ObjectDataSource не найден (пусто), но я действительно не уверен, что это такое ожидание, кроме имен и пространств имен, которые генерируются как «Reports.dtAprdParmsDateAprdDataTable»
Основная идея кода - это набор данных XSD, который сопоставляется с ObjectDataSource, который затем используется для подпитки ReportDataSource:
Dim myObjDataSource As New ObjectDataSource()
myObjDataSource.SelectMethod = "GetData"
myObjDataSource.OldValuesParameterFormatString = "original_{0}"
myObjDataSource.TypeName = "Reports.dtAprdParmsDateAprdDataTable"
myObjDataSource.SelectParameters.Add("FiscalStartDate", TypeCode.DateTime, myFiscalYear.StartDate.ToString("MM/dd/yyyy"))
myObjDataSource.SelectParameters.Add("FiscalEndDate", TypeCode.DateTime, myFiscalYear.EndDate.ToString("MM/dd/yyyy"))
'FilterRows
myObjDataSource.FilterExpression = myUser.GetListRowFilter
If myObjDataSource.FilterExpression = "" Then
myObjDataSource.FilterExpression = GetReportViewerRowListFilter()
ElseIf Not GetReportViewerRowListFilter() = "" Then
myObjDataSource.FilterExpression = myObjDataSource.FilterExpression & " AND " & GetReportViewerRowListFilter()
End If
ReportViewer1.ProcessingMode = ProcessingMode.Local
ReportViewer1.LocalReport.ReportPath = "Report01.rdlc"
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("Reports_dtAprdParmsDateAprd", myObjDataSource))
ReportViewer1.LocalReport.Refresh()
'I am able to declare the newly generated XSD no problems
Dim report As New Reports.dtAprdParmsDateAprdDataTable()
Кто-нибудь знает, как решить эту проблему? Я рад заменить функции на что-то более новое, но поскольку функциональность есть и работает, создается впечатление, что это должен быть простой выход.