2014-04-30 32 views
-1

我是非常新的存储过程。今天,我第一次使用存储过程。无效的对象名'dbo.Languages'

我有一个sql server中的表named- Languages。其中有字段 - ID,名称,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,IsDelete

我做了一个存储过程,但不知道如何在项目中使用它。

我的存储过程是 -

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 

我的项目代码上点击是 -

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(); 

我收到错误无效的对象名称dbo.Languages“。

我该如何解决它。

请帮帮我。

+1

你检查过的ConnectionString?也许你正在连接到另一台服务器或数据库。 –

+0

检查连接字符串是否将发送到HRMS,并且实际的SP已针对该数据库运行。 – PaulG

+0

是的,与错误的分贝连接..愚蠢的错误。 –

回答

3

根据评论中的建议,确保您首先连接到正确的数据库。

然后,你将需要改变

[dbo.Languages] 

[dbo].[Languages] 

FYI:这样做的原因是,SQL Server使用一个完全合格的名称引用的对象,如

[server_name].[database_name].[schema_name].[object_name] 

通常,当您引用一个对象时,您不必指定服务器,数据库和所有者。

在你的情况要指定所有者名称为DBO但语法不正确 - 你需要使用点符号,如

[schema_name].[object_name] 
+1

可能值得解释为什么这是这种情况(对象名称和模式等),会做出第一类答案然后=] – Sean