2011-10-19 4 views
0

レポートから終了すると接続を解放していないCrystal Report(プロシージャバインド)を使用しています。 私はと結晶にパラメータを渡す午前:UIでの接続を閉じるCrystal Report接続が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() 

が、Crystalレポートの接続を解除しません。 助けてください。

+0

接続が切断されていることをどのように確認していますか?これはwinformまたはASP.NET Webアプリケーションですか? – Justin

+0

いいえ、Windowsアプリケーションです。サーバー接続から開いている接続を識別しています。 – Preeti

答えて

1

レポートを使用してサーバーにログオンしていますが、レポートのデータソースをdataadapterでプルされたデータテーブルに設定しています。データテーブルが作成され接続が破棄されると、メモリ内のデータセットを操作する際に、SQL Serverに接続されなくなります。レポートのログオン資格情報を設定する代わりに、データソース接続をクリアし、データソースをメモリ内のデータテーブルに設定します。

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 */ 
関連する問題