Я разрабатываю хрустальный отчет в Visual Studio 2008, который использует пару различных баз данных в качестве DataSource. Все работало отлично, пока я пытаюсь, чтобы перейти к странице 2. Код, который работает (потому что он имеет ограниченные результаты) выглядит следующим образомОшибка входа в систему при переходе на следующую страницу в Crystal Reports VS2008
Dim mssqlstr As String
mssqlstr = "SELECT TOP 1 t1.*, t2.column1, t2.column2 FROM
tablename1 As t1, tablename2 As t2 WHERE t1.ID = '" & txtID.Text & "'
AND t2.column2 = RTRIM(LEFT(t1.column_2, 2)) ORDER BY t1.ID DESC"
Dim DAms As New OleDbDataAdapter(mssqlstr, conn)
DAms.Fill(dsQRpt, "tablename")
'The code below is shared by the other subreport functions
QPrpt.Load(Server.MapPath("crreport.rpt"))
QPrpt.SetDataSource(dsQRpt)
crQtrProgress.ReportSource = QPrpt
crQtrProgress.RefreshReport()
Но когда мне нужно больше результирующего набора из этого запроса
mssqlstr = "SELECT column1, column2 FROM tablename ORDER BY ID DESC"
Я получаю ошибку
.Ошибка входа.
Подробности: crdb_adoplus: Ссылка на объект не установлена в экземпляр объекта.
Ошибка в файле C: \ Users \ АЛЬФРЕД ~ 1.CAL \ AppData \ Local \ Temp \ rptQuarterlyProgress {10667888-35C5-41CA-93EF-214A64741965} .RPT: Невозможно подключиться: некорректный журнала по параметрам «
Оба запроса используют ту же строку подключения и поля отчета приходят от сопротивления и упал полей в таблицу (.xsd)
следует также отметить, что в докладе используется несколько подотчетов с каждым подотчет приходит из другого DataSource. Все подзаголовки кодируются одинаково и работают нормально, за исключением тех случаев, когда результаты должны переноситься на следующую страницу. Если я ограничу количество результатов, тогда я получаю желаемые результаты из каждого отчета, но если e данные переносятся на другую страницу ... kaboom! Я получаю «Невозможно подключиться ...» Ошибка.
Также DataSet подключается к базе данных и без проблем отображает данные таблицы. Я искал решение, но не нашел ничего, что соответствовало бы моей ситуации.
Спасибо за любую помощь предложило
РЕШЕНИЯ Заслуги haraman для предоставления ответа. Вот рабочий код
Dim dsQRpt = New Data.DataSet
Dim QPrpt = New ReportDocument
Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Page.IsPostBack Then
If Session.Item("CRpt") IsNot Nothing Then
QPrpt = Session.Item("CRpt")
End If
crQtrProgress.ReportSource = QPrpt
crQtrProgress.RefreshReport()
Else
If Session.Item("CRpt") IsNot Nothing Then
Session.Remove("CRpt")
End If
Session.Add("CRpt", QPrpt)
End If
End Sub
Protected Sub btRunReport_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim mssqlstr As String
mssqlstr = "SELECT column1, column2 FROM tablename ORDER BY ID DESC"
Dim DAms As New OleDbDataAdapter(mssqlstr, conn)
DAms.Fill(dsQRpt, "tablename")
'Populate Report
QPrpt.Load(Server.MapPath("crreport.rpt"))
QPrpt.SetDataSource(dsQRpt)
crQtrProgress.ReportSource = QPrpt
Session.Add("CRpt", QPrpt)
End Sub
Вы используете приложение WinForms или WebForms? И какая база данных? – haraman
Это веб-приложение с использованием базы данных SQL Server – Cal37