Reputation: 1784
I wrote the following in Visual Studio 2010:
label2.Text = Convert.ToString(BAssistencia.nroo);
ReportDocument oRep = new ReportDocument();
ParameterField campo = new ParameterField();
ParameterFields campo2 = new ParameterFields();
ParameterDiscreteValue Pdv = new ParameterDiscreteValue();
campo.Name = "@pedido";
Pdv.Value = label2.Text;
campo.CurrentValues.Add(Pdv);
campo2.Add(campo);
crystalReportViewer1.ParameterFieldInfo = campo2;
oRep.Load("C:/Relatorios/CrystalReport3.rpt");
crystalReportViewer1.ReportSource = oRep;
oRep.SetDatabaseLogon("sa","password","server","database");
The report opens fine on the computer with Visual Studio, but when I deploy, the application asks for the log again and again. What am I Doing wrong? Thanks in advance.
Upvotes: 0
Views: 740
Reputation: 2677
Can you try this code
ReportDocument rpt = new ReportDocument();
rpt.Load(@"C:\CrystalReport1.rpt");
ConnectionInfo crConnectionInfo = new ConnectionInfo();
crConnectionInfo.ServerName = "SERVERNAME";
crConnectionInfo.DatabaseName = "DATABASENAME";
crConnectionInfo.UserID = "USERNAME";
crConnectionInfo.Password = "PASSWORD";
crConnectionInfo.IntegratedSecurity = false;
TableLogOnInfos crTableLogonInfos = new TableLogOnInfos();
TableLogOnInfo crTableLogonInfo = new TableLogOnInfo();
Tables CrTables;
CrTables = rpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in CrTables)
{
crTableLogonInfo = crTable.LogOnInfo;
crTableLogonInfo.ConnectionInfo = crConnectionInfo;
crTable.ApplyLogOnInfo(crTableLogonInfo);
}
crystalReportViewer1.ReportSource = rpt;
crystalReportViewer1.Refresh();
Upvotes: 0
Reputation: 1963
You have two options for solving this problem.
Use a windows user account for accessing database More details are here
Apply credentials to main reports and all subreports dynamically
Application runs slow when DB logging info is applied to each Crystal Reports Sections
Upvotes: 1