Я пытаюсь вызвать мою хранимую процедуру sql, которая принимает RaceDate
в качестве ввода и возвращает Location
в качестве ВЫХОДА.Я не уверен, как вызвать мой код в ASP.NET, это то, что я до сих пор.
DateTime RaceDate = Calendar1.SelectedDate;
// string RaceDate = TxtBoxCalendar.Text;
TxtBoxCalendar.ReadOnly = true;
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ToString();
con.Open();
SqlCommand Command = new SqlCommand();
Command.CommandType = System.Data.CommandType.StoredProcedure;
Command.CommandText = "CheckRaceCalendarDates";
Command.Parameters.Add("@RaceDate", SqlDbType.DateTime, RaceDate);
Command.Parameters.Add("@Location", SqlDbType.String).Direction = ParameterDirection.Output;
Command.Parameters.Add("@Location",SqlDbType.String).Direction = ParameterDirection.Output;
Command.ExecuteNonQuery();
con.Close();
Думаю, у меня могут возникнуть проблемы с типами данных.RaceDate
- это дата, которую пользователь щелкает по календарю, и ее необходимо преобразовать в строку, однако параметр SQL RaceDate
имеет тип date.
CREATE PROCEDURE [dbo].[CheckRaceCalendarDates]
@RaceDates DATE,
@Location NVARCHAR(50) OUTPUT
AS
IF EXISTS
(
SELECT
RaceCalendar.RaceDates,
Locations.LocationName
FROM
Locations
INNER JOIN RaceCalendar ON locations.LocationId = RaceCalendar.LocationId
WHERE
RaceCalendar.RaceDates = @RaceDates
)
BEGIN
SELECT
@Location = Locations.LocationName
FROM
Locations
INNER JOIN RaceCalendar ON locations.LocationId = RaceCalendar.LocationId
WHERE
RaceCalendar.RaceDates = @RaceDates
END