Procedimiento o función 'usp_hotelRoom' espera el parámetro '@Name', que no se suministra

votos
0

¿Alguien puede ayudar a depurar mi código?

Básicamente he creado un procedimiento almacenado y quiero llamar a ese procedimiento almacenado dentro de mi sitio web (ASP.NET).

Este código es para mi procedimiento almacenado:

CREATE PROCEDURE usp_hotelRoom
    @country VARCHAR(50),
    @name VARCHAR(50)
AS
BEGIN
    SELECT
        Room.roomID, Room.roomName, Room.type, Room.capacity, Room.roomSize, 
        Room.description, Room.remarks, Room.services, Room.photo,
        Room.price, Hotel.name 
    FROM
        Room 
    INNER JOIN 
        Hotel ON Hotel.orgEmail = Room.orgEmail 
    WHERE
        country = @country 
        AND Hotel.name = @name;
END

EXEC usp_hotelRoom 'singapore', 'marina bay sands';

Este código es para llamar al procedimiento almacenado:

public static List<Room> getHotelRoomByCountry(string country, string name)
{
    SqlConnection con = new SqlConnection(conStr);

    try
    {
        SqlCommand command = new SqlCommand();
        command.Connection = con;
        command.CommandType = System.Data.CommandType.StoredProcedure;
        command.CommandText = usp_hotelRoom;

        var paramname = new SqlParameter
        {
            ParameterName = @country,
            Value = country
        };
        command.Parameters.Add(paramname);

        var paramhotel = new SqlParameter
        {
            ParameterName = @hotel.name,
            Value = name
        };
        command.Parameters.Add(paramhotel);

        con.Open();

        SqlDataReader reader = command.ExecuteReader();

        List<Room> rooms = null;

        if (reader.HasRows)
            rooms = new List<Room>();

        while (reader.Read())
        {
            rooms.Add(
                new Room()
                {
                    RoomID = reader[roomID].ToString(),
                    RoomName = reader[roomName].ToString(),
                    Type = reader[type].ToString(),
                    Capacity = reader[capacity].ToString(),
                    RoomSize = reader[roomSize].ToString(),
                    Desc = reader[description].ToString(),
                    Remarks = reader[remarks].ToString(),
                    Services = reader[services].ToString(),
                    Pictures = reader[photo].ToString(),
                    Price = reader[price].ToString(),
                });
        }
        reader.Close();
        return rooms;
    }
    finally
    {
        con.Close();
    }
}

Espero que alguien pueda ayudarme. Le agradecería que en su trabajo!

Trato de hacerlo por mi mismo y no funciona, hasta que lo intente añadir nuevos atributos de clase dentro de la clase de habitaciones ( Hotel.Name)

¡Gracias!

Publicado el 30/06/2018 a las 03:22
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
4

Cambie esta línea de código

ParameterName = "@hotel.name"

a

ParameterName = "@name"
Respondida el 30/06/2018 a las 03:39
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more