SQL Server 2005:无效的对象名称异常

时间:2010-04-26 10:58:04

标签: sql sql-server-2005 ado.net

在VS2005中,我使用的是访问SQL Server的DLL。 DLL返回SQLException

  

无效的对象名称't​​ableXYZ'

但tableXYZ是数据库中的一个表。

它应该寻找dbo.tableXYZ吗?这是使用登录的权限问题吗?

4 个答案:

答案 0 :(得分:1)

使用dbo.tableXYZ可以更清楚地显示您想要的内容 - 默认tableXYZ架构中的dbo。另一个模式中也可能有tableXYZ - 然后SQL Server可能不知道您想要哪个。

它绝对可能是权限问题。如果您在SQL SErver Mgmt Studio中以该用户身份连接到该数据库 - 您是否可以看到tableXYZ表??

UPDATE: DLL是否需要特定的连接字符串,您可能没有将其复制到调用应用程序的app.config文件中? .NET中的DLL实际上没有自己的mylibrary.dll.config - 默认情况下它不会被.NET读取。

答案 1 :(得分:1)

这可能是表和权限所有者的问题。

例如,表所有者可能是dbo,因此完整的表名称为dbo.TableXYZ您连接的用户可能是SQLUser可能无法访问{{} 1}}架构。因此,只能访问dbo

等表格

我会检查您用来连接数据库的权限。

答案 2 :(得分:0)

你必须在你的连接字符串中使用databasename - 否则它只是连接你必须使用dbo.databasename.tableXYZ。

您可以找到各种连接字符串here

答案 3 :(得分:0)

作为起点,您可以打开SQL Server Profiler跟踪,以查看 DLL如何连接到数据库。例如您应该能够看到正在使用的凭据。您还可以确认代码是否连接到正确的数据库等。