Соединение с отчетом Crystal не закрывается с помощью SetDatabaseLogon

Я использую кристаллический отчет (процедура привязки), который не разрывает соединение при выходе из отчета. Я передаю параметр кристаллу как:

Dim InserSql = "exec USP_TEST parameter1,parameter2
ConnectDB() /* connecting to database */
DtAdapter = New OdbcDataAdapter(InserSql, Con)
DtAdapter.Fill(DataTable)
rpt.SetDataSource(DataTable)
rpt.SetDatabaseLogon("usrname", "password")
CrystalReportViewer1.ReportSource = rpt /* rpt is crystal report object */
Con.Close() /*closing connection */
rpt.Database.Dispose()
Con.Dispose() 

Который закрывает соединение в пользовательском интерфейсе, но не освобождает соединение кристаллического отчета. Пожалуйста помоги.


person Preeti    schedule 19.10.2011    source источник
comment
Как вы проверяете, что соединение закрыто? Это веб-приложение winform или ASP.NET?   -  person Justin    schedule 24.10.2011
comment
Нет, это приложение Windows. Я идентифицирую открытые соединения с соединениями с сервером.   -  person Preeti    schedule 25.11.2011


Ответы (1)


Вы входите на сервер с отчетом, но устанавливаете источник данных отчета в таблицу данных, полученную с помощью адаптера данных. После заполнения таблицы данных и удаления соединения вы больше не подключены к серверу sql, так как работаете с набором данных в памяти. Вместо того, чтобы задавать учетные данные для входа в отчет, очистите подключения к источнику данных и установите источник данных в таблицу данных в памяти.

Dim InserSql = "exec USP_TEST parameter1,parameter2" 
ConnectDB() /* connecting to database */ 
DtAdapter = New OdbcDataAdapter(InserSql, Con) 
DtAdapter.Fill(DataTable)
DtAdapter.Dispose() /* dispose data adapter after filling datatable */
Con.Close()
Con.Dispose() /* connection disposed */
rpt.DataSourceConnections.Clear() /* Clear existing login/datasource for report object */ 
rpt.SetDataSource(DataTable)     
CrystalReportViewer1.ReportSource = rpt /* rpt is crystal report object */ 
CrystalReportViewer1.RefreshReport() /* rpt is refreshed with data from datatable and is not connected to database */
person Justin    schedule 24.10.2011