Ваша хранимая процедура определена для ожидания аргументов (AirportID
, ICAOCode
, AirportName
, City
, Lat
, Long
, Elevation
и Country
):
CREATE PROCEDURE [dbo].[sp_GetAllAirports]
@AirportID INT,
@ICAOCode VARCHAR(4) NULL,
@AirportName VARCHAR(MAX),
@City VARCHAR(MAX),
@Lat DECIMAL(8,3),
@Long DECIMAL (11,3),
@Elevation INT ,
@Country NVARCHAR(MAX)
AS
...
Однако он не использует ни одного из них. Поэтому вам, вероятно, нужно просто удалить их:
CREATE PROCEDURE [dbo].[sp_GetAllAirports]
AS
...
В качестве альтернативы, убедитесь, что аргументы используются в SP (так что имеет смысл ожидать аргументы), и передайте значения соответственно (sp_GetAllAirports 1234
), например:
CREATE PROCEDURE [dbo].[sp_GetAllAirports]
@AirportID INT
AS
....
SELECT AirportID, ICAOCode, AirportName, City, Latitude, Longitude, Elevation, CountryFK
FROM tbl_Airports
LEFT JOIN tbl_Countries ON CountryID = tbl_Airports.CountryFK
WHERE CountryID = tbl_Airports.CountryFK
AND AirportID = @AirportID -- Using first argument here
ORDER BY AirportID
....
Или, наконец, укажите значения аргументов по умолчанию, например:
CREATE PROCEDURE [dbo].[sp_GetAllAirports]
@AirportID INT = NULL,
@ICAOCode VARCHAR(4) = 'FOO',
...
AS
...
Таким образом, вам не придется явно передавать какие-либо значения аргументов. Однако вам все равно придется использовать аргументы, чтобы аргументы имели смысл в первую очередь.