在我发布此问题之前,我确实花了一个小时搜索。
该表确实存在,我可以查询该表,我可以看到结果集但是当我尝试从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
,但这没有帮助。
答案 0 :(得分:2)
所以我尝试调整我的连接字符串,它确实创建了一个字符串 看它是否有所作为:它确实如此。
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)”并在第二次检查时失败。然后追踪它创建它的位置!