2015-05-25 42 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