如何System.Data.SqlClient.SqlConnection轉換爲CrystalDecisions.Shared.ConnectionInfo如何System.Data.SqlClient.SqlConnection轉換爲CrystalDecisions.Shared.ConnectionInfo
是否有可能?有人在這個問題上需要幫助,請。
如何System.Data.SqlClient.SqlConnection轉換爲CrystalDecisions.Shared.ConnectionInfo如何System.Data.SqlClient.SqlConnection轉換爲CrystalDecisions.Shared.ConnectionInfo
是否有可能?有人在這個問題上需要幫助,請。
根據MSDN for ConnectionInfo,ConnectionInfo對象就是它所說的關於連接的信息。 SqlConnection用於建立與數據庫的連接。
SqlConnection具有創建ConnectionInfo對象所需的信息。 具體而言, DataSource, Database和 Credential。
爲什麼不能創建一個新的CrystalDecisions.Shared.ConnectionInfo對象並將其屬性設置爲等於SqlConnection上的相應屬性?
發現自己在類似的情況下,解決方案是不將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);
}
這個問題是這樣的老,運也不多點,所以這可能不會得到標記爲答案。無論如何,我認爲這是正確的做法。