C# 更改数据库位置会删除所有者架构
我们在8.0.1.0中创建了数百个报告(我知道它们是旧的) 我们创建了一个VisualStudio2010C#应用程序来运行这些报告。这是一个Windows应用程序。Web应用程序出现了一些问题 所有报告都保存在PROD环境下 我们正在测试环境中工作 我们使用的是Oracle环境,所有报告都使用Oracle服务器连接 当我们通过C#运行报告时,我们继续将所有数据库位置更改为我们的测试环境。发生这种情况时,“所有者”(模式)信息将被删除。报告失败,出现942错误 现在,如果我们不更改数据库,将其保留为PROD,那么一切都会完美工作。似乎通过更改数据库,模式信息被删除了 任何想法。我一直在四处寻找,找不到解决办法 代码片段:C# 更改数据库位置会删除所有者架构,c#,.net,visual-studio-2010,crystal-reports,C#,.net,Visual Studio 2010,Crystal Reports,我们在8.0.1.0中创建了数百个报告(我知道它们是旧的) 我们创建了一个VisualStudio2010C#应用程序来运行这些报告。这是一个Windows应用程序。Web应用程序出现了一些问题 所有报告都保存在PROD环境下 我们正在测试环境中工作 我们使用的是Oracle环境,所有报告都使用Oracle服务器连接 当我们通过C#运行报告时,我们继续将所有数据库位置更改为我们的测试环境。发生这种情况时,“所有者”(模式)信息将被删除。报告失败,出现942错误 现在,如果我们不更改数据库,将其保
connectionInfo.DatabaseName = "";
connectionInfo.ServerName = <SERVER>;
connectionInfo.UserID = <USER>;
connectionInfo.Password = <PWORD>;
foreach (Table crTable in crTables)
{
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = connectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
// if you wish to change the schema name as well, you will need to set Location property as follows:
//crTable.Location = "<SCHEMA>." + crTable.Name;
}
connectionInfo.DatabaseName=“”;
connectionInfo.ServerName=;
connectionInfo.UserID=;
connectionInfo.Password=;
foreach(表格crTable中的表格crTable)
{
crTableLogOnInfo=crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo=ConnectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
//如果还希望更改架构名称,则需要按如下方式设置Location属性:
//crTable.Location=“.”+crTable.Name;
}
我已尝试设置crTable。位置,但程序锁定。因此不确定该怎么办。过去,我们通过以下操作成功更改了连接参数:
CrystalDecisions.Shared.TableLogOnInfo info = document.Database.Tables[iTable].LogOnInfo.Clone() as CrystalDecisions.Shared.TableLogOnInfo;
info.ConnectionInfo.ServerName = <SERVER>;
info.ConnectionInfo.DatabaseName = "";
info.ConnectionInfo.UserID = <USER>;
info.ConnectionInfo.Password = <PASSWORD>;
document.Database.Tables[iTable].ApplyLogOnInfo(info);
connectionInfo.DatabaseName = "";
connectionInfo.ServerName = <SERVER>;
connectionInfo.UserID = <USER>;
connectionInfo.Password = <PWORD>;
foreach (Table crTable in crTables)
{
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = connectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
// if you wish to change the schema name as well, you will need to set Location property as follows:
//crTable.Location = "<SCHEMA>." + crTable.Name;
crTable.Location = "<SCHEMA>." + crTable.LogOnInfo.TableName;
}
CrystalDecisions.Shared.TableLogOnInfo info=document.Database.Tables[iTable].LogOnInfo.Clone()作为CrystalDecisions.Shared.TableLogOnInfo;
info.ConnectionInfo.ServerName=;
info.ConnectionInfo.DatabaseName=“”;
info.ConnectionInfo.UserID=;
info.ConnectionInfo.Password=;
document.Database.Tables[iTable].ApplyGonInfo(info);
其中
document
是CrystalDecisions.CrystalReports.Engine.ReportDocument
通过执行以下操作修复了它:
CrystalDecisions.Shared.TableLogOnInfo info = document.Database.Tables[iTable].LogOnInfo.Clone() as CrystalDecisions.Shared.TableLogOnInfo;
info.ConnectionInfo.ServerName = <SERVER>;
info.ConnectionInfo.DatabaseName = "";
info.ConnectionInfo.UserID = <USER>;
info.ConnectionInfo.Password = <PASSWORD>;
document.Database.Tables[iTable].ApplyLogOnInfo(info);
connectionInfo.DatabaseName = "";
connectionInfo.ServerName = <SERVER>;
connectionInfo.UserID = <USER>;
connectionInfo.Password = <PWORD>;
foreach (Table crTable in crTables)
{
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = connectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
// if you wish to change the schema name as well, you will need to set Location property as follows:
//crTable.Location = "<SCHEMA>." + crTable.Name;
crTable.Location = "<SCHEMA>." + crTable.LogOnInfo.TableName;
}
connectionInfo.DatabaseName=“”;
connectionInfo.ServerName=;
connectionInfo.UserID=;
connectionInfo.Password=;
foreach(表格crTable中的表格crTable)
{
crTableLogOnInfo=crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo=ConnectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
//如果还希望更改架构名称,则需要按如下方式设置Location属性:
//crTable.Location=“.”+crTable.Name;
crTable.Location=“.”+crTable.LogOnInfo.TableName;
}
我设置的位置不正确。谢谢你的帮助 942错误的消息是什么?找不到视图/表。这是因为架构正在被删除,所以它不知道在哪里可以找到表。谢谢!但我认为我们找到了另一种似乎有效的方法。见下文