Этот вопрос касается веб-службы ASP.NET, которую я создаю с использованием архитектуры DAL-BLL для моего окончательного школьного проекта.
У меня есть хранимая процедура, которая является запросом выбора с внутренним объединением для2 таблицы.Следовательно, хранимая процедура возвращает значение из нескольких таблиц.Один из моих методов DAL tableAdapter обращается к этой хранимой процедуре.Как получить возвращаемое значение в BLL?Должен ли я создать структуру класса, аналогичную той, которая должна быть возвращена хранимой процедурой?или есть прямой способ добиться того же?Помощь очень ценится.Пожалуйста, дайте мне знать, если кому-то нужен апплет кода, чтобы лучше понять.Спасибо
Вот еще немного информации: я использую набор данных SQL (.xsd) в DAL.Итак, у меня есть дата под названием «Страхование», в которой есть таблица Адаптер.Один из запросов в адаптере ссылается на хранимую процедуру, которая имеет внутреннее соединение.Таким образом, мой SP выглядит так:
ALTER PROCEDURE dbo.GetInsurancesPaged
(
@startRowIndex int,
@maximumRows int,
@patientID int
)
AS
select * from
(
SELECT Insurance.insuranceID, Insurance.memberID, Insurance.groupID, Insurance.accountType, Insurance.comments, Insurance.patient, Insurance.company, InsuranceCompany.companyID, InsuranceCompany.companyName, InsuranceCompany.address, InsuranceCompany.phone, InsuranceCompany.fax, ROW_NUMBER() over (order by Insurance.dateModified DESC) as ROWRANK
FROM Insurance INNER JOIN InsuranceCompany ON Insurance.company = InsuranceCompany.companyID
WHERE Insurance.patient = @patientID
)
AS DataWithRowNumbers
WHERE ROWRANK > @startRowIndex AND ROWRANK <= (@startRowIndex + @maximumRows)
Так что этот SP возвращает таблицу данных, которая будет комбинацией 2 таблиц во внутреннем объединении.Пожалуйста, исправьте меня, если я ошибаюсь.
Теперь в моем BLL у меня есть:
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
public mySys.InsuranceDataTable GetInsurancesPaged(int startRowIndex, int maximumRows, int patientID)
{
return insAdapter.GetInsurancesPaged(startRowIndex, maximumRows, patientID);
}
, где insAdapter является экземпляром insuranceTableAdapter
Это дает ошибку при выполнении,Я могу успешно выполнить SP, так что я думаю, что проблема только в том, что я пытаюсь вернуть неправильный набор данных из BLL.Пожалуйста, помогите мне решить эту проблему.