Вот застрял на ХР подскажите как лучше
Есть веб страничка там есть три поля для фильтрации
1 тип
1 пользователь
3 клиент
в зависимости от выбранных параметров должна вызывается ХР с параметрами или без них
Вот код
ALTER PROCEDURE [схема].[Test]
@type bigint = 0,
@userid bigint = 0,
@client varchar(255) = null
as
////////////////////////////////////// отрабатывает если ни одного параметра не выбрано то есть при первой загрузке страницы
if (@type = 0 and @userid = 0 and @client = null)
begin
SELECT dc.id as id
,lname
,fname
,mname
,status
.....
,[date]
,dt.title as type
,uu.userlname+' '+uu.userfname as operator
FROM [схема].[D...Clients] dc inner join [схема].[D...Types] dt on dt.id=dc.idType
inner join [схема].[Users] uu on uu.userid=dc.OperatortId
where dc.status in (0,2) order by dc.[date], dc.status
end
//////////////////////////// отрабатывает когда выбран тип продукта например
else if (@type > 0 and @userid = 0 and @client = null)
begin
SELECT dc.id as id
,lname
,fname
,mname
,status
.....
,[date]
,dt.title as type
,uu.userlname+' '+uu.userfname as operator
FROM [схема].[D...Clients] dc inner join [схема].[D...Types] dt on dt.id=dc.idType
inner join [схема].[Users] uu on uu.userid=dc.OperatortId
where dc.status in (0,2) and dt.id=@type order by dc.[date], dc.status
end
///////////////////////////отрабатывает когда выбран оператор который ответственный за заявку
else if (@type = 0 and @userid > 0 and @client = null)
begin
SELECT dc.id as id
,lname
,fname
,mname
,status
.....
,[date]
,dt.title as type
,uu.userlname+' '+uu.userfname as operator
FROM [схема].[D...Clients] dc inner join [схема].[D...Types] dt on dt.id=dc.idType
inner join [схема].[Users] uu on uu.userid=dc.OperatortId
where dc.status in (0,2) and uu.userid=@userid order by dc.[date], dc.status
end
////////////////// и т д всего 8 вариантов
Так вот проблема в том что на ASP.NET странице вылетает ошибка
Вот сама ошибка
Недопустимая попытка чтения при отсутствии данных. Хотя я брал вот этот кусок кода:
SELECT dc.id as id
,lname
,fname
,mname
,status
.....
,[date]
,dt.title as type
,uu.userlname+' '+uu.userfname as operator
FROM [схема].[D...Clients] dc inner join [схема].[D...Types] dt on dt.id=dc.idType
inner join [схема].[Users] uu on uu.userid=dc.OperatortId
where dc.status in (0,2) order by dc.[date], dc.status
тестировал в sql management studio, создал 2 тестовые строки для проверки и работает.
Может в блоках if ... else if ошибка но никак не могу понять где?
Спасибо.