2012-03-05 3 views
1

이 문제에 대해 게시하기 전에 검색에 1 시간을 소비했습니다.존재하지 않기 때문에 개체를 찾을 수 없습니다.

테이블이 존재하고 그 테이블을 조회 할 수 있습니다 나는 결과 집합을 볼 수 있지만 난 비주얼 스튜디오 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'를 실행하기위한 허가 전제 조건입니다. –

+0

ConnectionString이 올바른 데이터베이스를 지정합니까? –

+0

@Pat : 예, 올바른 데이터베이스를 가리키고, 내가 다른 문제없이 작동하는 다른 테이블에 연결하면 내가 말했듯이 –

답변

1

몇 시간을 소비 한 후 머리카락이 거의 없어서 연결 문자열에 문제가 있다는 것을 알았지 만 (문제는 아직 해결되지 않았습니다) 질문에 문제가 없었지만 갑자기 팝업이 표시되었습니다. dba가 변경된 사항을 알고있는 사람은 아무 것도 변경하지 않습니다.

그래서 연결 문자열을 조정 해 봅니다. 차이가 있는지 확인하기 위해 문자열을 만듭니다 ( ).

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

난 내 연결 문자열에 추가 한 유일한 Trusted_Connection= Yes

PS입니다 : SET를 IDENTITY_INSERT 당신이 그것을 해제 때까지 세션에 남아 있고, 그것은 단지에있을 수있는 하나 개의 테이블에 대한 시간

희망이 다른 사람을 도울 것입니다 ...

0

데이터베이스 컨텍스트를 아직 설정하지 않았기 때문에 오류가 발생합니다. 쿼리의 시작 부분에 "use (dbname) go"(데이터베이스 이름 사용)를 추가하면 작동합니다.

[편집] 죄송합니다. 잘못된 서버에 연결했을 수 있습니까? 코드에서 쿼리를 "create table argh (argh int)"로 변경하고 두 번째 실패 여부를 확인하십시오. 그런 다음 그것을 만든 곳을 추적하십시오!

+0

OP에서 명시 적으로 시도했습니다. –

+0

질문 끝에 "나는 또한 dbname 사용"을 시도했습니다. –

+0

OP 작성자 란 무엇입니까? 나는이 약어로 여전히 새다 –

관련 문제