2012-04-02 93 views
0

我已经继承了一些非常糟糕的代码,广泛使用Crystal Reports。我的问题是,我可以在本地正常工作,但是当我转移到生产服务器时,它会崩溃。如何在Crystal Reports中强制使用数据源位置?

当我在Visual Studio中的“设置数据源位置”向导中更改连接信息时,它不会让我将其更改为生产服务器的连接信息,因为它会测试连接并自然失败。一旦失败,它将恢复到旧的“正常”连接信息。

我知道它无法远程连接。我只是试图改变我在服务器上部署它时的连接信息。当然有一种方法可以将这些信息加入到报告中。

任何帮助将非常感激。我头发快要拔出来了。

+0

考虑标记/提及语言和dbms – 2012-04-03 07:03:13

回答

0

您可以创建一个ConnectionInfo对象,然后用ApplyLogOnInfo

下面是MSDN article on the ConnectionInfo Class

private void SetConnectionInfo (string table, string server, string database, string user, string password) 
{ 
    TableLogOnInfo logOnInfo = new TableLogOnInfo(); 
    logOnInfo = Report.Database.Tables[table].LogOnInfo; 
    ConnectionInfo connectionInfo = new ConnectionInfo(); 
    connectionInfo = logOnInfo.ConnectionInfo; 

    connectionInfo.DatabaseName = database; 
    connectionInfo.ServerName = server; 
    connectionInfo.Password = password; 
    connectionInfo.UserID = user; 
    Report.Database.Tables [table].ApplyLogOnInfo(logOnInfo); 
} 

样品虽然通常我觉得它更容易只是使用它适用于每个报表上的表ORACLE的ODBC或TNS条目名称,并在所有避免完全代码的环境中保持相同的名称。

相关问题