2009-10-21 12 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") 

的登录提示不显示了。