Pregunta

Esta pregunta es con respecto al servicio web de ASP.NET que estoy creando utilizando la arquitectura DAL-BLL para mi proyecto final de la escuela.

Tengo un procedimiento almacenado, que es una consulta seleccionada con una unión interna para 2 tablas. Por lo tanto, el procedimiento almacenado devuelve el valor multifato. Uno de mis métodos de manifestaciones de My Dal Accede a este procedimiento almacenado. ¿Cómo puedo recuperar el valor de retorno en el BLL? ¿Tengo que crear una estructura de clase similar a la que se supone que es devuelta por el Proc almacenado? ¿O hay una forma directa de lograr lo mismo? Ayuda enormemente apreciado. Por favor, hágamelo saber si alguien necesita un applet de código para obtener una mejor comprensión. Gracias

Aquí hay más información: Estoy usando el conjunto de datos SQL (.xsd) en dal. Así que tengo un número de datos llamado "seguro", que tiene un manifestante. Una de las consultas en el adaptador referencias a un procedimiento almacenado, que tiene una unión interna. Así que me parece mi 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)

Entonces, este SP devuelve un DataTable, que será una combinación de las 2 tablas en la unión interna. Por favor, corrígeme si estoy equivocado.

ahora en mi bll, tengo:

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
    public mySys.InsuranceDataTable GetInsurancesPaged(int startRowIndex, int maximumRows, int patientID)
    {
       return insAdapter.GetInsurancesPaged(startRowIndex, maximumRows, patientID);
    }

Donde Insadapter es una instancia de insurancetableadapter

Esto da un error en la ejecución. Puedo ejecutar el SP con éxito, así que creo que el problema es solo BCZ, estoy tratando de devolver un error incorrecto desde el BLL. Por favor, ayúdame a solucionar esto.

¿Fue útil?

Solución 2

encontrado una solución :) Finalmente lo tengo trabajando.

He creado un nuevo adaptador de mesa usando el diseñador de Dataset, y llamé a la SP como una de las consultas allí.Por lo tanto, el DataTable creado, tiene todos los campos (de seguros e insurancompany) incluido.Ahora, ASP.NET puede detectar que el tipo de retorno es el recién creado de datos. Funciona como un encanto.

Si hay una mejor manera de resolver esto, comente.

Gracias a todos por su tiempo.

Otros consejos

Si usa el conjunto de datos ADO .NET.El asistente creará definitivamente una tabla para los mismos.Ahora, desde la capa DataAccess, haga los siguientes pasos

1. Create a object of dataset. (DLL)

Private YourCustomeDataSetDatatable  DataAccess()
{
 YourCustomDataSet ds = new YourCustomDataSet();  // also called strongly typed dataset
YourCustomeDataSetDatatable dt = ds.YourCustomeDataSetDatatable ()
YourCustomeDataSetTableAdapter ta = new ds.YourCustomeDataSetTableAdapter (); // table adapter that will be invoked 
ta.Fill(dt); // or if you have set to return only you can also use GetData()
}

2. Now in business layer

Private YourCustomeDataSetDatatable  DataAccess()
{
// create a object of DLL. 
MyDAL myDal = new MyDAL ();
return myDal.DataAccess();
}

  1. Atrapa esto en su página de UI siguiendo el objeto de creación de BLL y llame al método.Aquí, en BLL, también puede hacer varias operaciones para reducir los códigos en UI y mantenerlo limpio de varias manipulaciones.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top