Trabajar sin DataSets

02/04/2007 - 23:54 por Pedro | Informe spam
Alguien ha visto cuando uno agrega un dataset (y sus tablas) en un
formulario visualmente la cantidad de codigo que se genera internamente en
Dataset.designer.cs?
Pregunto, es necesario todo eso para trabajar con datos. Como le hago si no
quiero trabajar con dataset o por lo menos de esa manera?

Pedro

Preguntas similare

Leer las respuestas

#31 Marcos Then
05/04/2007 - 13:37 | Informe spam

1. Recurrir a datasets genéricos. Tienes menos carga de código generado,
por lo cual, a priori, más ligereza, menos consumo de recursos, etc... y
más si se ciñen exclusivamente a los datos necesarios en cada momento.
También se puede recurrir a datatables sin necesidad de usar datasets al
más puro estilo recordset o resultset de otros lenguajes.



Me interesa eso. Quieres decir que yo puedo definir un datatable
independiente? sin tener que meterla a un dataset y poder rellenarla con el
resultado de una consulta?
Podrias dar un pequeno ejemplo?

La desventaja... que el IDE es muy quisquilloso y si para ciertas
operaciones tienes que poner tu el código. Por ejemplo, si yo quiero
enlazar un grid a un datatable o a un dataset genérico, no voy a poder
ajustar las propiedades de sus columnas visualmente y otras funcionalidades
porque el IDE sólo me deja hacer esto con datasources provenientes de
datasets tipados...



Como se hacía en la version 2003?

Puedo, obviamente, cambiar esas propiedades a pedal mediante código, y así,
ciertamente ahorraré código, pero perderé mucho tiempo que en teoría me
debería proporcionar el IDE (es decir, no puedo cambiar la pizza de
quedarme hasta la cena por el croissant del desayuno que sale en esos
anuncios tan a la americana de Visual Studio). Y por supuesto, respecto a
Crystal Reports, olvidarme de que tire de un dataset y hacer que lo haga
directamente contra la base de datos, lo cual en principio (por mi
experiencia) puede hacer que sea el doble más lento

2. Recurrir a datasets tipados. Aquí se solucionan esos problemas del
primer punto, pero... se generan miles y miles de líneas de código de las
cuales muchas no vamos a usar. Supongo que se podría intentar borrar de
los archivos designer toda la morralla de código, pero si necesitáramos
meter otra tabla o cambiar algo, inmediatamente el IDE volvería a generar
todo el código y nos tocaría volver a borrar.




Es mejor dejarlas alli entonces.


Yo no soy un experto en esto, mi experiencia en desarrollo en .net es de
apenas 3 años,



Bueno, eso demuestra lo que dicen muchos por ahi que .NET es una herramienta
dificil de aprender debido a que para mi 3 años era tiempo de sobra para
dominar lenguajes anteriores como VB6, Visual Foxpro, Delphi, etc.

pero sinceramente... no veo muchas más opciones de hacer las cosas con
.net, al menos con lo que hay ahora, y si alguien conoce algo diferente a
lo que he puesto aquí y a los ORMs, que nos ilumine

Y por cierto, Alfredo, me da que por muy bien que pueda venir LINQ estoy
por apostar que al final no va a responder a tus exigencias (sobre todo
cuando le intentes enchufar las 200 tablas xD)

Respuesta Responder a este mensaje
#32 Marcos Then
05/04/2007 - 13:42 | Informe spam

Para simular un cursor, también podrías usar un DataTable, ya sea
trayéndote toda la tabla del tirón y moviéndote por los registros en
memoria, o rellenando el DataTable con un sólo registro de manera que tu
mismo implementes cuál es el registro a traer mediante una consulta




Te pregunto, como podria yo hacer esto ( si es que se puede):

Traer por ejemplo:
SELECT NOMBRE, APELLIDO FROM BASE.DBO.EMPLEADOS EMP WHERE EMP.SUELDO<2000

y que el resultado se meta en un DataTable el cual yo pueda recorrer a mi
antojo (hacia delante y hacia atras).

Se puede eso sin necesidad de tener un dataset y todo su rollo?
Respuesta Responder a este mensaje
#33 Juan Diego Bueno
05/04/2007 - 14:05 | Informe spam
"Marcos Then" escribió en el mensaje
news:
Yo no soy un experto en esto, mi experiencia en desarrollo en .net es de
apenas 3 años,

Bueno, eso demuestra lo que dicen muchos por ahi que .NET es una
herramienta dificil de aprender debido a que para mi 3 años era tiempo de
sobra para dominar lenguajes anteriores como VB6, Visual Foxpro, Delphi,
etc.



Yo no voy a entrar a valorar si es difícil o no de aprender, pero no tengo
yo tan claro lo de "dominar" en el caso de esos lenguajes. Yo el primer año
ya podía hacer cualquier tipo de aplicación contra bases de datos en .NET,
sólo que con el tiempo voy descubriendo nuevas funcionalidades. Dominar un
lenguaje es algo muy relativo, si lo usas para hacer siempre el mismo tipo
de aplicación con las mismas herramientas, podrías "dominarlo" en unos meses
(si ya tienes conocimientos y experiencia desarrollando), pero hoy por hoy
cualquier lenguaje tiene tantísimas funcionalidades que es a mi juicio muy
complicado dominarlas todas.

Si te fijas en el ejemplo que viene a continuación, con sólo conocer eso y
cuatro cosas más, ya podrías hacer casi cualquier tipo de aplicación que
trabajara contra un sistema de base de datos y eso a mi me llevó aprenderlo
y empezar a usarlo apenas unos días

>
Te pregunto, como podria yo hacer esto ( si es que se puede):

Traer por ejemplo:
SELECT NOMBRE, APELLIDO FROM BASE.DBO.EMPLEADOS EMP WHERE EMP.SUELDO<2000

y que el resultado se meta en un DataTable el cual yo pueda recorrer a mi
antojo (hacia delante y hacia atras).

Se puede eso sin necesidad de tener un dataset y todo su rollo?



Claro, simplemente consiste en que hagas el fill del dataadapter sobre un
datatable en vez de sobre un dataset:

SqlDataAdapter daPrueba = new SqlDataAdapter("SELECT NOMBRE, APELLIDO FROM
BASE.DBO.EMPLEADOS EMP WHERE EMP.SUELDO<2000", Conexion);

DataTable dt = new DataTable();

daPrueba.Fill(dt);

Ahora si necesitas los apellidos del número de registro i:

dt.Rows[i]["APELLIDOS"].ToString();
Respuesta Responder a este mensaje
#34 Marcos Then
05/04/2007 - 14:40 | Informe spam
Gracias Juan.

Me parecen muy buenos tus posts.

Saludos.


"Juan Diego Bueno" escribió en el mensaje
news:

"Marcos Then" escribió en el mensaje
news:
Yo no soy un experto en esto, mi experiencia en desarrollo en .net es de
apenas 3 años,



Bueno, eso demuestra lo que dicen muchos por ahi que .NET es una
herramienta dificil de aprender debido a que para mi 3 años era tiempo de
sobra para dominar lenguajes anteriores como VB6, Visual Foxpro, Delphi,
etc.



Yo no voy a entrar a valorar si es difícil o no de aprender, pero no tengo
yo tan claro lo de "dominar" en el caso de esos lenguajes. Yo el primer
año ya podía hacer cualquier tipo de aplicación contra bases de datos en
.NET, sólo que con el tiempo voy descubriendo nuevas funcionalidades.
Dominar un lenguaje es algo muy relativo, si lo usas para hacer siempre el
mismo tipo de aplicación con las mismas herramientas, podrías "dominarlo"
en unos meses (si ya tienes conocimientos y experiencia desarrollando),
pero hoy por hoy cualquier lenguaje tiene tantísimas funcionalidades que
es a mi juicio muy complicado dominarlas todas.

Si te fijas en el ejemplo que viene a continuación, con sólo conocer eso y
cuatro cosas más, ya podrías hacer casi cualquier tipo de aplicación que
trabajara contra un sistema de base de datos y eso a mi me llevó
aprenderlo y empezar a usarlo apenas unos días

>
Te pregunto, como podria yo hacer esto ( si es que se puede):

Traer por ejemplo:
SELECT NOMBRE, APELLIDO FROM BASE.DBO.EMPLEADOS EMP WHERE
EMP.SUELDO<2000

y que el resultado se meta en un DataTable el cual yo pueda recorrer a mi
antojo (hacia delante y hacia atras).

Se puede eso sin necesidad de tener un dataset y todo su rollo?



Claro, simplemente consiste en que hagas el fill del dataadapter sobre un
datatable en vez de sobre un dataset:

SqlDataAdapter daPrueba = new SqlDataAdapter("SELECT NOMBRE, APELLIDO
FROM BASE.DBO.EMPLEADOS EMP WHERE EMP.SUELDO<2000", Conexion);

DataTable dt = new DataTable();

daPrueba.Fill(dt);

Ahora si necesitas los apellidos del número de registro i:

dt.Rows[i]["APELLIDOS"].ToString();




Respuesta Responder a este mensaje
#35 Juan Diego Bueno
05/04/2007 - 15:18 | Informe spam
"Marcos Then" escribió en el mensaje
news:%23hB8P%

Gracias Juan.

Me parecen muy buenos tus posts.

Saludos.




No hay de que. Me alegro de ser útil

Saludos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida