Visual Basic.NET - Capa de datos

 
Vista:

Capa de datos

Publicado por Guillermo III (73 intervenciones) el 30/01/2009 16:11:15
Hola a todos, estoy desarrollando una aplicación en 3 capas y quisiera su opinion sobre un tema:

Cada vez que en la capa de negocio necesito realizar una consulta diferente/nueva a la base de datos creo una nueva función o método en la capa de datos que me devuelva el data set o el objeto individual según sea el caso.

Quería saber si esto les suena razonable.

Muchas gracias al que pueda ayudame.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Capa de datos

Publicado por OliBeer (391 intervenciones) el 30/01/2009 16:41:30
Hola!!

Si en una escuela tienes a docientos niños, para qué quieres docientas bicicletas, no sería mejor tener sólo una y hacer las instancias necesarias a partir de ésta.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Capa de datos

Publicado por Guillermo III (73 intervenciones) el 30/01/2009 18:13:52
Hola!

Lo que dices es crear una clase select y luego pasarle los parámetros, por ejemplo los campos a seleccionar, las tablas a relacionar y las condiciones del WHERE?

Tienes algún ejemplo o puedes indicarme de donde leerlo.

Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Capa de datos

Publicado por Luis Rivas (2 intervenciones) el 01/02/2009 18:14:23
En efecto puedes hacer una clase que te haga consultas sql dinámicas, esto lo puedes hacer construyendo en la capa de acceso a datos el sql dinámico, o pasarlo como parámetros de un store procedure.
Una forma de hacerlo puede ser la siguiente:

Public Function consultar(ByVal tabla As String, ByVal campos As String, ByVal condicion As String, ByVal orden As String)
Dim ds As DataSet = New DataSet
If condicion = "" And orden = "" Then
sql = "Select " & campos & " From " & tabla
ElseIf condicion <> "" And orden = "" Then
sql = "Select " & campos & " From " & tabla & " Where " & condicion
ElseIf condicion = "" And orden <> "" Then
sql = "Select " & campos & " From " & tabla & " Order By " & orden
ElseIf condicion <> "" And orden <> "" Then
sql = "Select " & campos & " From " & tabla & " Where " & condicion & " Order By " & orden
End If
Try
cnn = New SqlClient.SqlConnection(cadena)
cnn.Open()
da = New SqlClient.SqlDataAdapter(sql, cnn)
da.Fill(ds, tabla)
cnn.Close()
Return ds
Catch ex As Exception
cnn.Close()
Return ds
End Try
ds.Clear()
End Function
Este código por supuesto se convertirá en un método de una clase, la cual al instanciarla podrás acceder a él y así te evitas de estar haciendo una función para cada consulta.
Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Capa de datos

Publicado por Guillermo III (73 intervenciones) el 02/02/2009 17:48:27
Muchas Gracias!

Si en vez de SQL dinámico se usan procedimientos almacenados, como sabe la clase de datos a cual procedimiento almacenado invocar?

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar