Que tal Fernando, la idea era usar el dataset que devuelve llenar para cargar el combo. No creo que tengan relacion, pero como seria que la clase vendedores y movimientos compartan una misma instancia de DataSet?
Muchas Gracias

Fernando Tubio escribió:
Algo huele mal en el código que enviaste. Primero se crea un DataSet,

this.dsVendedores = new DataSet();

e inmediatamente se lo sobreescribe con un llamado al método Llenar()

this.dsVendedores = this.vendedores.Llenar();

Idem para la otra clase.

this.dsMovimientos = new DataSet();
this.dsMovimientos =
this.movimientos.Llenar(Convert.ToInt32(this.vendedor.SelectedValue));

El resultado es que el DataSet usado como data source del ComboBox es el
devuelto por la clase Vendedores, y si bien esto en sí no tiene nada de
malo, sospecho que no es lo que te proponías. Si tu intención es que el
método Llenar() cargue el DataSet creado previamente entonces deberías
modificar dicho método para tomar el DataSet como parámetro. Esto también
sería más consistente, por lo menos en lo que respecta a nombres de método, con el patrón usado en los TableAdapters de NET 2.0, donde se pueden generar métodos que devuelven un objeto nuevo cuyo nombre por default comienza con
Get...(), como también métodos que operan sobre un objeto recibido como
parámetro y que por default comienzan con Fill...(), o en tu caso Llenar().

Habría que ver el código de las clases Vendedores y Movimientos para decir
donde está el problema, pero sospecho que deben compartir una misma
instancia de DataSet.

Saludos,

Fernando Tubio

----- Original Message ----- From: "Gustavo" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Friday, March 30, 2007 7:21 PM
Subject: [puntonet] Comportamiento extraño de DataSet o ComboBox


Buenas Tardes, a ver si me pueden ayudar, si a alguien le sucedio algo
parecido, me sucede algo extraño:
Cree una serie de clases para la manipulacion de datos de las tablas de la
aplicacion.
Una de ellas la uso para traer de la base de datos los vendedores en un
dataset que uso de transporte y luego llenar un ComboBox de la siguiente
manera:

this.vendedores = new Vendedores();
this.dsVendedores = new DataSet();
this.dsVendedores = this.vendedores.Llenar();
this.vendedor.DisplayMember = "NOMBRE";
this.vendedor.ValueMember = "ID";
this.vendedor.DataSource = this.dsVendedores.Tables[0].DefaultView;

Hasta aca todo bien, se llena el combo correctamente teniendo el campo ID
como value y el Nombre en Display.
Pero Cuando Creo otro objeto de otra clase similar pero para otra entidad,
al llamar al metodo this.movimientos.Llenar me rompe el combobox de
vendedores, mantiene su cantidad de registros, pero dice System.DataRow,
como si se perdieran sus datos.....

this.movimientos = new Movimientos();           this.dsMovimientos = new
DataSet();
this.dsMovimientos =
this.movimientos.Llenar(Convert.ToInt32(this.vendedor.SelectedValue));
<<<< Rompe

No entiendo que es lo que sucede ya que son dos objetos diferentes. los
datasets no tienen relacion alguna y no son referenciados.
A su vez, la clase Movimientos y Vendedores usan otra clase, que se usa de
coneccion a la base de datos, quizas venga por ahi, pero no encuentro
nada.
Espero que se entienda el problema, Me podran dar alguna ayuda?

Saludos
Gustavo





Responder a