如何将System.Data.SqlClient.SqlConnection转换为CrystalDecisions.Shared.ConnectionInfo
可能吗?有人请帮助解决这个问题。
答案 0 :(得分:0)
根据MSDN for ConnectionInfo,ConnectionInfo对象就是它所声明的,关于连接的信息。 SqlConnection用于建立与数据库的连接。
SqlConnection具有创建ConnectionInfo对象所需的信息。 特别, DataSource, Database,和 Credential
答案 1 :(得分:0)
为什么不能创建新的CrystalDecisions.Shared.ConnectionInfo对象并将其属性设置为等于SqlConnection上的相应属性?
答案 2 :(得分: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);
}
这个问题已经过时了,操作上没有多少分,所以可能这不会被标记为答案。无论如何,我认为这是正确的做法。