Search code examples
c#parameters

How to create sql server stored procedure with output parameter and call from C#


Still i get an error "The formal parameter "@result" was not declared as an OUTPUT parameter, but the actual parameter passed in requested output". here is my code in c#

            SqlCommand cmd = new SqlCommand("AddRoomType", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@TypeName", TxtType.Text);
            cmd.Parameters.Add("@result", SqlDbType.Int);
            cmd.Parameters["@result"].Direction = ParameterDirection.Output;              


            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();

my stored procedure in SQL server

Create proce AddRoomType
@TypeName nvarchar(50),
@result int

as
if(exists(select * from TblRoomTypes where RoomType = @TypeName))
set @result = 0
else 
begin
set @result = 1
insert into TblRoomTypes (RoomType) values (@TypeName)
end

please Help


Solution

  • Set Your Parameter as OUTPUT when creating the Stored Procedure

    create proc AddRoomType
        @TypeName nvarchar(50),
        @result int out          -- ** NOTE it's declared as 'OUT' ** 
    
    as
      if(exists(select * from TblRoomTypes where RoomType = @TypeName))
        set @result = 0
      else 
      begin
        set @result = 1
        insert into TblRoomTypes (RoomType) values (@TypeName)
      end