2012-03-05 85 views
1

在發佈此問題之前,我確實花了一個小時搜索。找不到對象,因爲它不存在

該表確實存在,我可以查詢該表,我可以看到的結果集,但是當我嘗試從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

你是表的所有者還是你有'ALTER'權限的表?這些權限是在表上執行「SET IDENTITY_INSERT」的先決條件。 – 2012-03-05 02:38:23

+0

ConnectionString是否指定了正確的數據庫? – 2012-03-05 02:41:58

+0

@Pat:是它指向正確的數據庫,正如我所說如果我連接到一個不同的表,它的工作原理沒有任何問題 – 2012-03-05 02:45:40

回答

1

花了幾個小時後,我發現問題是在連接字符串(但這仍然沒有傳達我),並且正如我所說的問題我沒有任何問題,但突然其彈出和我沒有改變任何東西(誰知道什麼DBA已經改變)

所以我嘗試調整我的連接字符串,而它確實使字符串 ,看看它是否有所作爲:它的確如此。

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

我已經加入到我的連接字符串的唯一的事情是Trusted_Connection= Yes

PS:你把它關掉SET IDENTITY_INSERT仍然爲您的會議,直到 ,它只能是在一個表時間

希望這會幫助其他人...

0

由於尚未設置數據庫上下文,因此發生錯誤。如果你添加「使用(dbname)去」(與你的數據庫名稱)的查詢開始它將工作。

對不起沒有發現,你試過。也許你連接到錯誤的服務器?嘗試將代碼中的查詢更改爲「create table argh(argh int)」,並在第二次檢查失敗。然後追蹤它創建它的地方!

+0

OP明確表示,已經嘗試過。 – 2012-03-05 02:37:46

+0

接近問題的結尾是「我也嘗試過'使用dbname'」。 – 2012-03-05 02:38:57

+0

什麼是OP - 作者?我還是這個縮寫的新名字 – 2012-03-05 02:48:04

相關問題