A la place de :
ConnectionInfo crConnectionInfo = new ConnectionInfo(); crConnectionInfo.Type = ConnectionInfoType.SQL; crConnectionInfo.ServerName = "ODBCsource"; crConnectionInfo.DatabaseName = "DataBase"; crConnectionInfo.UserID = "Login"; crConnectionInfo.Password = "Password"; foreach (CrystalDecisions.CrystalReports.Engine.Table tmpTable in doc.Database.Tables) { tmpTable.LogOnInfo.ConnectionInfo = crConnectionInfo; tmpTable.ApplyLogOnInfo(tmpTable.LogOnInfo); tmpTable.Location = tmpTable.Name; }Il suffit de faire :
doc.DataSourceConnections[0].SetConnection("ODBCsource", "DataBase", "Login", "Password"); doc.Refresh();Où la variable "doc" est du type "ReportDocument".
Attention j'ai pris l'index 0 dans "DataSourceConnections" à titre d'exemple.
La valeur peut changer en fonction du modèle.