2015-05-25 40 views
0

嗨,我有一个Windows基地的C#应用​​程序开发使用水晶报告作为我的报告工具。我已经提供了所有的登录和数据库信息,但是当我运行并部署它..它仍然要求数据库登录。水晶报告数据库登录参数

这里是我的代码如下。

ReportDocument rpt = new ReportDocument(); 


     TableLogOnInfos crtableLogoninfos = new TableLogOnInfos(); 
     TableLogOnInfo crtableLogoninfo = new TableLogOnInfo(); 
     ConnectionInfo crConnectionInfo = new ConnectionInfo(); 
     Tables CrTables; 

     rpt.Load("C:/Operation/Reports/po.rpt"); 

     crConnectionInfo.ServerName = "192.4.4.4"; 
     crConnectionInfo.DatabaseName = "Operations"; 
     crConnectionInfo.UserID = "sa"; 
     crConnectionInfo.Password = "xxxxxx"; 




     ParameterFieldDefinitions crParameterFieldDefinitions; 
     ParameterFieldDefinition crParameterFieldDefinition; 
     ParameterValues crParameterValues = new ParameterValues(); 
     ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue(); 

     crParameterDiscreteValue.Value = DbClass.PONumber; 
     crParameterFieldDefinitions = rpt.DataDefinition.ParameterFields; 
     crParameterFieldDefinition = crParameterFieldDefinitions["ParameterPO"]; 
     crParameterValues = crParameterFieldDefinition.CurrentValues; 

     crParameterValues.Clear(); 
     crParameterValues.Add(crParameterDiscreteValue); 
     crParameterFieldDefinition.ApplyCurrentValues(crParameterValues); 



     CrTables = rpt.Database.Tables; 
     foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables) 
     { 
      crtableLogoninfo = CrTable.LogOnInfo; 
      crtableLogoninfo.ConnectionInfo = crConnectionInfo; 
      CrTable.ApplyLogOnInfo(crtableLogoninfo); 
     } 

     crpt.Refresh(); 
     crpt.ReportSource = rpt; 

我的头隐隐作痛哪里出了问题......如果有人知道这件事,请给我一个想法的..

谢谢!

回答

0

首先打开您的连接。使用此:

SqlConnection myConnection = new SqlConnection("xxx"); 
myConnection.Open(); 
// Your Code 
myConnection.Close(); 

然后关闭连接。

+0

我想这不是必要的因为我不使用SQL这里...没有sql连接涉及,因为我已经在水晶报告中设置字段...我需要的是登录信息来查看报告。 – Daryl