2009-10-21 13 views
0

我正在使用visual studio 2005開發一個窗體,其中一個組合框將一個值傳遞給嵌入式水晶報表的參數。我試圖找出爲什麼每次嘗試使用不同的組合框選擇運行報表時,爲什麼它會一直提示我進行數據庫登錄。visusal studio嵌入式水晶報告保持提示數據庫登錄?

這裏是我的代碼:

private Sub Form1_load... 
     Dim ConnName As String 
     Dim ServerName As String 
     Dim DBName As String 
     Dim user As String 
     Dim pass As String 
     Dim gDBA As ADODB.Connection 
     Dim records As ADODB.Recordset 
     Dim datver As ADODB.Recordset 
     Dim query As String 


     '---OPEN THE DATABASE CONNECTIONS 
     gDBA = New ADODB.Connection ': gDBA.CursorLocation = adUseServer 
     'Added to prevent time out error 
     gDBA.CommandTimeout = 1000 : gDBA.ConnectionTimeout = 1000 

     gDBA.ConnectionString = "Server=svr13;Database=subscribers;User ID=KViews;Password=Solution;Trusted_Connection=True;" 

     gDBA.Open("Data Source=Kaseya;Initial Catalog=subscribers;User Id=KViews;Password=Solution;", "KViews", "Solution") 

     records = New ADODB.Recordset 

     query = "select distinct groupname from _v_k order by groupname desc" 
     'records.ActiveConnection = gDBA.ConnectionString 
     records.CursorType = CursorTypeEnum.adOpenForwardOnly 
     records.LockType = LockTypeEnum.adLockReadOnly 

     records.Open(query, gDBA) 
     Do While Not records.EOF 
      ComboBox1.Items.Add(records.Fields("groupname").Value) 
      records.MoveNext() 

     Loop 
end Sub 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     Dim selected As String 
     selected = ComboBox1.Text 

     Dim cryRpt As New ReportDocument 
     cryRpt.Load("C:\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\CrystalReport1.rpt") 
     cryRpt.SetDatabaseLogon("KViews", "Solutions", "svr13", "subscribers") 


     cryRpt.SetParameterValue("companyname", selected) 

     CrystalReportViewer1.ReportSource = cryRpt 
     CrystalReportViewer1.Refresh() 

    End Sub 

我看着這個以前發佈database login prompt with crystal reports

但這不是非常有幫助。我無法找到CMC要禁用提示的位置。

任何想法?在此先感謝

+0

因此,當您第一次運行報表時,它不會提示您,但當您更改組合框的選擇以再次運行報表時會提示您? – Crispy 2009-10-21 17:34:10

+0

它提示我兩次..當我第一次嘗試運行它,當我選擇不同的組合框值再次運行。 – phill 2009-10-21 18:58:36

回答

0

想通了。下面一行是不正確的

cryRpt.SetDatabaseLogon("KViews", "Solutions", "svr13", "subscribers") 

它應該只是是這樣的:

cryRpt.SetDatabaseLogon("KViews", "Solutions") 

的登錄提示不顯示了。