在web.config中使用连接字符串进行水晶报告

时间:2010-05-06 22:02:08

标签: asp.net odbc

我在两个服务器之间遇到问题,使用不同的odbc dsn。

我的应用程序运行良好,但水晶报告使用原始的odbc连接,我该如何解决这个问题?

我正在考虑在web.config中使用相同的连接字符串,但我不知道如何。

发现this,但对我来说太混乱了

感谢,

2 个答案:

答案 0 :(得分:1)

您无法像使用ado.net连接那样使用连接字符串。但是,您当然可以使用web.config中的值来指定连接信息。创建ConnectionInfo类的实例并设置ServerName,DatabaseName,UserID和Password属性。然后将其附加到报告中的每个表中:

ConnectionInfo reportConnectionInfo = new ConnectionInfo();
reportConnectionInfo.ServerName = ConfigurationManager.AppSetting["ServerName"];
reportConnectionInfo.DatabaseName = ...;
reportConnectionInfo.UserID = ...;
reportConnectionInfo.Password = ...;

foreach (Table table in reportDocument.Database.Tables) {
  table.LogOnInfo.ConnectionInfo = reportConnectionInfo;
}

如果您尝试使用此建议,请注意我的邋in键入...

答案 1 :(得分:1)

您可以使用连接字符串。 您必须创建一个数据库提供程序ConnectionStringBuilder的实例,该实例传入从配置文件中提取的连接字符串。这是VB中的一个例子。

Dim connString As String = ConfigurationManager.ConnectionStrings["MyDbConn"].ConnectionString
Dim connStringBuilder As SqlConnectionStringBuilder = New SqlConnectionStringBuilder(connString)

Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
myConnectionInfo.DatabaseName = connectionStringBuilder.InitialCatalog
myConnectionInfo.UserID = connectionStringBuilder.UserID
myConnectionInfo.Password = connectionStringBuilder.Password
myConnectionInfo.ServerName = connectionStringBuilder.DataSource