2012-10-05 23 views

回答

0

爲什麼不能創建一個新的CrystalDecisions.Shared.ConnectionInfo對象並將其屬性設置爲等於SqlConnection上的相應屬性?

0

發現自己在類似的情況下,解決方案是不將sqlconnection本身轉換爲connectioninfo,而是使用連接字符串。繼使用SqlConnectionStringBuilder做只是代碼:

ConnectionInfo connection = new ConnectionInfo(); 

string connectionString = ConfigurationManager.ConnectionStrings["_2Focus.Properties.Settings._2ServeConnection"].ConnectionString; 
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectionString); 
connection.ServerName = builder.DataSource; 
connection.DatabaseName = builder.InitialCatalog; 
connection.IntegratedSecurity = builder.IntegratedSecurity; 
if (!builder.IntegratedSecurity) 
{ 
    connection.Password = builder.Password; 
    connection.UserID = builder.UserID; 
} 

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

這個問題是這樣的老,運也不多點,所以這可能不會得到標記爲答案。無論如何,我認爲這是正確的做法。