如何修复 - 实际存在时无法在数据库错误中找到对象/表?

时间:2014-01-31 18:21:36

标签: c# sql-server ssis

我制作了一个控制台C#app,我在其中生成SQL以在表info_table中插入一行然后执行它。当我在SSIS中使用相同的C#代码(当然需要进行必要的修改)时,我收到一条错误消息,指出无法找到该表。

Error: System.Reflection.TargetInvocationException: Exception has 
been thrown by the target of an invocation. 
---> System.Data.SqlClient.SqlException: Invalid object name 'info_table'.

我知道我的数据库中有一个info_table,它可以在控制台应用程序中运行。所以,我尝试在我的SSIS C#脚本中使用完全限定名称,而不仅仅是info_table,错误就消失了。为什么会发生这种情况,我该如何解决?我怀疑我的SSIS连接字符串是否有问题。

我的SSIS连接字符串(连接管理器是ADO.NET类型) -

Data Source=.;User ID=admin;Initial Catalog=MaximDB;Persist 
Security Info=True;Application Name=SSIS-DataReader-{555000d
ddd-aaa-bbb-cccceee}LocalHost.MaximDB.admin;

我的控制台应用连接字符串 -

"server=(local);database=MaximDB;integrated security=SSPI;";

要连接数据库的C#对象 -

对于控制台C#app -

      SqlConnection conn = new SqlConnection(consoleString);

对于SSIS C#脚本 -

        String ssisDbConnMgr = "SAMPLE_DB";//Name of the connection 
        manager in SSIS, an ADO.NET type

        ConnectionManager connMgr;
        SqlConnection databaseConn;
        SqlCommand sqlCmd;
        connMgr = Dts.Connections[ssisDbConnMgr];
        databaseConn = (SqlConnection)connMgr.AcquireConnection(Dts.Transaction);
        sqlCmd = new SqlCommand();

1 个答案:

答案 0 :(得分:0)

听起来桌子没有使用默认架构(即“dbo”之外的东西)。