ГДЕ В (массив идентификаторов)
Сначала вам понадобится функция .cs-file и sproc. Функция разделит ado.net ваши данные и вернет таблицу:
CREATE function IntegerCommaSplit(@ListofIds nvarchar(1000))
returns @rtn table (IntegerValue int)
AS
begin
While (Charindex(',',@ListofIds)>0)
Begin
Insert Into @Rtn
Select ltrim(rtrim(Substring(@ListofIds,1,Charindex(',',@ListofIds)-1)))
Set @ListofIds = Substring(@ListofIds,Charindex(',',@ListofIds)+len(','),len(@ListofIds))
end
Insert Into @Rtn
Select ltrim(rtrim(@ListofIds))
return
end
Затем sqlparameters вам понадобится sproc, чтобы mssql использовать это:
create procedure GetAdminEvents
@buildingids nvarchar(1000),
@startdate datetime
as
SELECT id,startDateTime, endDateTime From
tb_bookings t INNER JOIN
dbo.IntegerCommaSplit(@buildingids) i
on i.IntegerValue = t.id
WHERE startDateTime <= @fromDate
Наконец, ваш ado.net код:
[WebMethod]
public MiniEvent[] getAdminEvents(int[] buildingIDs, DateTime startDate)
command.CommandText = @"exec GetAdminEvents";
SqlParameter buildID= new SqlParameter("@buildingIDs", buildingIDs);
Это выходит далеко за mssql рамки вашего вопроса, но visual-c# он сделает то, что вам нужно.
Примечание. если c-sharp вы передадите что-либо, кроме visual-c# int, вся функция базы данных c#-language завершится ошибкой. Я оставляю sql-srever обработку ошибок для этого ms-sql-server в качестве упражнения для .cs-file конечного пользователя.
c#
sql-server
tsql
ado.net
sqlparameter
ГДЕ В (массив идентификаторов)
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.