无法找到该对象,因为它不存在

时间:2012-03-05 02:24:25

标签: sql-server-2008

在我发布此问题之前,我确实花了一个小时搜索。

该表确实存在,我可以查询该表,我可以看到结果集但是当我尝试从Visual Studio 2008执行时,我收到以下错误:

Cannot find the object "Products" because it does not exist or you do not have permissions

为什么会出现此错误,我应该怎么做才能解决它?

using (System.Data.SqlClient.SqlCommand cmd = connection.CreateCommand() as System.Data.SqlClient.SqlCommand)
{
   cmd.CommandText = "SET IDENTITY_INSERT Products ON";
   cmd.CommandType = CommandType.Text;
   cmd.ExecuteNonQuery();
}

我尝试指定dbo.Products,在执行之前我也试过了use dbname,但这没有帮助。

2 个答案:

答案 0 :(得分:2)

花了几个小时后失去了几根头发,我发现问题出现在连接字符串中(但这仍然没有让我理解)并且正如我所说的那样,我没有任何问题,但突然间它的弹出和我没有改变任何东西(谁知道dba已经改变了什么)

所以我尝试调整我的连接字符串,它确实创建了一个字符串 看它是否有所作为:它确实如此。

c.Provider = 'sqloledb'
dsn = 'Server=MyServer;Database=MyDB;Trusted_Connection= Yes'
c.Open(dsn)

我添加到连接字符串的唯一内容是Trusted_Connection= Yes

PS:SET IDENTITY_INSERT在您的会话期间保持开启状态 你关掉它,它一次只能打开一张桌子

希望这会有助于其他人......

答案 1 :(得分:0)

发生错误是因为您尚未设置数据库上下文。如果您将“use(dbname)go”(带有您的数据库名称)添加到查询的开头,它将起作用。

[编辑] 抱歉没有发现你曾尝试过。也许你连接到错误的服务器?尝试将代码中的查询更改为“create table argh(argh int)”并在第二次检查时失败。然后追踪它创建它的位置!