2009-10-21 7 views
0

J'utilise Visual Studio 2005 pour développer un formulaire avec une liste déroulante transmettant une valeur dans le paramètre d'un rapport de cristaux incorporé. J'essaie de comprendre pourquoi il m'incite à me connecter à la base de données chaque fois que vous essayez d'exécuter le rapport avec une sélection de liste déroulante différente.visusal studio embedded crystal report persiste à demander la connexion à la base de données?

Voici mon code:

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 

J'ai regardé ce précédent affichage database login prompt with crystal reports

mais cela n'a pas été très utile. Je ne pouvais pas trouver où un CMC était pour désactiver l'invite.

Des idées? Merci d'avance

+0

Ainsi, il ne vous demande pas lorsque vous exécutez le rapport pour la première fois, mais vous invite lorsque vous modifiez la sélection de la zone de liste déroulante pour réexécuter le rapport? – Crispy

+0

il me le demande à chaque fois ... quand je tente de l'exécuter pour la première fois et quand je choisis une autre valeur de liste déroulante pour l'exécuter à nouveau. – phill

Répondre

0

compris. la ligne suivante était incorrecte

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

il devrait juste être ceci:

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

l'invite de connexion ne montre pas plus.

Questions connexes