2014-04-30 3 views
-1

저장 프로 시저에서 새로 생겼습니다. 오늘, 처음에는 저장 프로 시저로 작업하고 있습니다.유효하지 않은 개체 이름 'dbo.Languages'

SQL Server에 Languages라는 테이블이 있습니다. 어떤 필드가 있습니다 - ID, 이름, CreatedOn, CreatedBy, UpdatedOn, UpdatedBy, IsDelete.

저장 프로 시저를 만들었지 만 프로젝트에서 사용하는 방법을 모릅니다. 내가 그 잘못된 개체 이름 'dbo.Languages'오류가 발생하고

string strcon = ConfigurationManager.ConnectionStrings["Dbconnection"].ConnectionString; 
     SqlConnection sqlConnection = new SqlConnection(strcon); 

     SqlCommand command = new SqlCommand("hrm_Add", sqlConnection); 
     command.CommandType = CommandType.StoredProcedure; 
     command.Parameters.Add("@Name", SqlDbType.VarChar).Value = txtName.Text; 
     command.Parameters.Add("@CreatedOn", SqlDbType.DateTime).Value = DateTime.Now; 
     command.Parameters.Add("@UpdatedOn", SqlDbType.DateTime).Value = DateTime.Now; 
     command.Parameters.Add("@CreatedBy", SqlDbType.BigInt).Value = 1; 
     command.Parameters.Add("@UpdatedBy", SqlDbType.BigInt).Value = 1; 
     command.Parameters.Add("@IsDeleted", SqlDbType.Bit).Value = 0; 
     sqlConnection.Open(); 
     return command.ExecuteNonQuery(); 

을 - 이것도 클릭에은 -

USE [HRMS] 
GO 
/****** Object: StoredProcedure [dbo].[hrm_Add] Script Date: 04/30/2014 15:06:52 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER PROCEDURE [dbo].[hrm_Add] 
    -- Add the parameters for the stored procedure here 
    @Id int = 0, 
    @Name varchar(120), 
    @CreatedOn datetime, 
    @UpdatedOn datetime=0, 
    @CreatedBy bigint=0, 
    @UpdatedBy bigint=0, 
    @IsDeleted bit=0 
AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    -- Insert statements for procedure here 
    INSERT INTO [dbo.Languages](Name, CreatedOn,UpdatedOn,CreatedBy,UpdatedBy,IsDeleted) VALUES(@Name,@CreatedOn,@UpdatedOn,@CreatedBy,@UpdatedBy,@IsDeleted) 
END 

내 프로젝트 코드

내 저장 프로 시저.

어떻게 해결할 수 있습니까?

도와주세요.

+1

당신이를 ConnectionString을 확인 했 같은 점 표기법을 사용해야합니까? 아마도 다른 서버 나 데이터베이스에 연결하고있을 것입니다. –

+0

연결 문자열이 HRMS로 가고 있는지 확인하고 실제 SP가 해당 DB에 대해 실행되었는지 확인하십시오. – PaulG

+0

네, 잘못된 데이터베이스와 연결 .. 어리석은 실수. –

답변

3

의견의 제안에 따라 올바른 데이터베이스에 먼저 연결해야합니다.

그럼 당신은 변경해야합니다

[dbo.Languages] 

참고

[dbo].[Languages] 

에 : 그 이유는 SQL 서버는

[server_name].[database_name].[schema_name].[object_name] 
같은 객체를 참조하는 정규화 된 이름을 사용한다는 것입니다

일반적으로 개체를 참조 할 때 서버, 데이터베이스 및 소유자를 지정할 필요가 없습니다. 귀하의 경우에는

당신은 DBO 등 소유자의 이름을 지정되지만 구문이 올바르지 않습니다 - 당신은

[schema_name].[object_name] 
+1

왜 이런 경우인지 설명 할 가치가 있습니다 (객체 이름과 스키마 등). – Sean

관련 문제