2012-08-24 198 views
1

通的ASP/ C# .NET页面运行下面的代码时,我得到一个错误:错误“无效的对象名称INFORMATION_SCHEMA.TABLES”

SELECT 1 FROM [database].INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='example_table' 

的代码运行完全当我在sql management studio query窗口中运行它。 它也只破1个具体server - 当我运行在不同的server与不同connection string,它工作正常。

我已经搜遍了互联网,我似乎找到的所有答案都是有区分大小写的问题,但我使用的都是大写字母,而且问题表无论如何都使用SQL_Latin1_General_CP1_CI_AS collation

基于这一切,我敢肯定这是某种权限问题,但我不确定在哪里寻找。

我得到的错误:

无效的对象名称database.INFORMATION_SCHEMA.TABLES“。

连接字符串:

<add name="connectionName" connectionString="Data Source=servername; Initial Catalog=master; User ID=user; Password=pw" providerName="System.Data.SqlClient"/> 

UPDATE:

一些详细信息:我已经适应从一些旧VB的东西,基本上做同样的事情的代码。 VB代码在相同的服务器和数据库上运行相同的确切查询,但它工作正常。

VB代码:

Dim connStr As String = ConfigurationManager.ConnectionStrings("connectionName").ConnectionString 
Dim objConnection As SqlConnection = New SqlConnection(connStr) 
Dim objCommand As SqlCommand = New SqlCommand("SELECT 1 FROM [database].INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='example_table'", objConnection) 
objCommand.CommandType = CommandType.Text 

objConnection.Open() 

的C#和VB代码都使用完全相同的连接字符串从web.config中,所以我想这使我怀疑,这将是一个权限问题。仍然不知道问题是什么。

+0

你得到的错误将是有用的,连接字符串,这种事情 –

+0

我道歉不清楚,错误是标题:无效的对象名'database.INFORMATION_SCHEMA.TABLES'。连接字符串是相当标准的,我想, Zimek

+0

does not为我工作,但我没有一个数据库称为数据库... –

回答

0

经过一番更多的调试,我能够确定代码实际上运行在错误的服务器上。所以,根据我发布的内容,没有任何方法可以找到这个bug,但我认为Tony基于来回的方式走在正确的轨道上。

0

这是你的情况下的复制粘贴问题,我希望用你的数据库名称更改[数据库]。

相关问题