Enlazar un ObjectDataSource con Un DataGridView

25/07/2007 - 02:26 por Tinchoss | Informe spam
Hola que tal mi nombre es Martin y tengo el sig Problema: Tengo una
clase llamada accesoArchivo que tiene un metodo public static Dataset
AccesoaDatos, este metodo toma las lineas de un archivo de texto y los
carga en un arreglo bidimensional, luego pasa los datos del arreglo a
un DataTable para lo cual se crean las columnas, filas, etc. Luego
creo un objeto Dataset, agrego la tabla recien creada y cargada y por
ultimo Retorno el dataset. Ya comprobe que los datos se cargan
correctamente en el dataTable.
Lo que necesito es usar esta Clase con su metodo para mostrar los
datos en DataGridView pero luego de configurar el DataSource para que
sea Object DataSource y elegir la clase... no sucede nada cuando lo
enlazo con el DataGridView, es decir no me muestra la tabla que se
supone esta devolviendo el metodo... Alguien tiene una sugerencia de
que me podria estar faltando para hacer lo que necesito.

El Codigo es el siguiente:

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.IO;
using System.Data;

namespace WindowsApplication1
{
public class accesoArchivo
{
public static DataTable accesoDatos()
{
StreamReader archivo = new StreamReader(@"C:\prueba
\prueba.txt");
//defino el contador y el string para comparar
int count = 0;
string lin = archivo.ReadLine();
//cuenta la cantidad de lineas del archivo
while (lin != null)
{
count = count + 1;
lin = archivo.ReadLine();
}

archivo.Close();
//comienza tratamiento de strings
string texto = "";
//matriz formada con la cantidad de lineas del archivo y 4
campos por linea
string[,] matriz = new string[count, 4];
char separador = ',';
int i = 0;
//abrimos de nuevo para que se inicie en la primera linea
StreamReader archivo2 = new StreamReader(@"C:\prueba
\prueba.txt");
//bucle que reccore por filas, maximo count que contiene
el numero de lineas del archivo
for (i = 0; i <= count; i++)
{
texto = archivo2.ReadLine();

if (texto != null)
{
//inserta en cada posicion del arreglo campos los
valores separados por comas
int j = 0;
foreach (string palabra in texto.Split(separador))
{
matriz[i, j] = palabra;
j = j + 1;
}
}
}
//cerramos el archivo
archivo2.Close();

//Creo la tabla y sus columnas
DataTable tablaTragamonedas = new DataTable();
DataColumn IdLote = new DataColumn("IdLote");
DataColumn IdTragamoneda = new
DataColumn("IdTragamoneda");
DataColumn IdContador = new DataColumn("IdContador");
DataColumn ValorCont = new DataColumn("Valor Contador");
//Agrego las columnas a la tabla
tablaTragamonedas.Columns.Add(IdLote);
tablaTragamonedas.Columns.Add(IdTragamoneda);
tablaTragamonedas.Columns.Add(IdContador);
tablaTragamonedas.Columns.Add(ValorCont);
//agrego cada una de las filas
for (int a = 0; a <= count - 1; a++)
{
System.Data.DataRow fila = tablaTragamonedas.NewRow();
fila["IdLote"] = matriz[a,0];
fila["IdTragamoneda"] = matriz[a,1];
fila["IdContador"] = matriz[a,2];
fila["Valor Contador"] = matriz[a,3];
tablaTragamonedas.Rows.Add(fila);
}
//creo un dataset que contenga la tabla
DataSet tablascasino = new DataSet();
tablascasino.Tables.Add(tablaTragamonedas);
return tablaTragamonedas;





}


}
}
 

Leer las respuestas

#1 Roger Surmay
23/08/2007 - 16:44 | Informe spam
public class accesoArchivo
{
public STATIC DataTable accesoDatos()>>>>>









hola panita. quita el static que tienes ahi! que todas sean publicas! :)
intenta ver.
suerte! :D


"" wrote:

Hola que tal mi nombre es Martin y tengo el sig Problema: Tengo una
clase llamada accesoArchivo que tiene un metodo public static Dataset
AccesoaDatos, este metodo toma las lineas de un archivo de texto y los
carga en un arreglo bidimensional, luego pasa los datos del arreglo a
un DataTable para lo cual se crean las columnas, filas, etc. Luego
creo un objeto Dataset, agrego la tabla recien creada y cargada y por
ultimo Retorno el dataset. Ya comprobe que los datos se cargan
correctamente en el dataTable.
Lo que necesito es usar esta Clase con su metodo para mostrar los
datos en DataGridView pero luego de configurar el DataSource para que
sea Object DataSource y elegir la clase... no sucede nada cuando lo
enlazo con el DataGridView, es decir no me muestra la tabla que se
supone esta devolviendo el metodo... Alguien tiene una sugerencia de
que me podria estar faltando para hacer lo que necesito.

El Codigo es el siguiente:

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.IO;
using System.Data;

namespace WindowsApplication1
{
public class accesoArchivo
{
public static DataTable accesoDatos()
{
StreamReader archivo = new StreamReader(@"C:\prueba
\prueba.txt");
//defino el contador y el string para comparar
int count = 0;
string lin = archivo.ReadLine();
//cuenta la cantidad de lineas del archivo
while (lin != null)
{
count = count + 1;
lin = archivo.ReadLine();
}

archivo.Close();
//comienza tratamiento de strings
string texto = "";
//matriz formada con la cantidad de lineas del archivo y 4
campos por linea
string[,] matriz = new string[count, 4];
char separador = ',';
int i = 0;
//abrimos de nuevo para que se inicie en la primera linea
StreamReader archivo2 = new StreamReader(@"C:\prueba
\prueba.txt");
//bucle que reccore por filas, maximo count que contiene
el numero de lineas del archivo
for (i = 0; i <= count; i++)
{
texto = archivo2.ReadLine();

if (texto != null)
{
//inserta en cada posicion del arreglo campos los
valores separados por comas
int j = 0;
foreach (string palabra in texto.Split(separador))
{
matriz[i, j] = palabra;
j = j + 1;
}
}
}
//cerramos el archivo
archivo2.Close();

//Creo la tabla y sus columnas
DataTable tablaTragamonedas = new DataTable();
DataColumn IdLote = new DataColumn("IdLote");
DataColumn IdTragamoneda = new
DataColumn("IdTragamoneda");
DataColumn IdContador = new DataColumn("IdContador");
DataColumn ValorCont = new DataColumn("Valor Contador");
//Agrego las columnas a la tabla
tablaTragamonedas.Columns.Add(IdLote);
tablaTragamonedas.Columns.Add(IdTragamoneda);
tablaTragamonedas.Columns.Add(IdContador);
tablaTragamonedas.Columns.Add(ValorCont);
//agrego cada una de las filas
for (int a = 0; a <= count - 1; a++)
{
System.Data.DataRow fila = tablaTragamonedas.NewRow();
fila["IdLote"] = matriz[a,0];
fila["IdTragamoneda"] = matriz[a,1];
fila["IdContador"] = matriz[a,2];
fila["Valor Contador"] = matriz[a,3];
tablaTragamonedas.Rows.Add(fila);
}
//creo un dataset que contenga la tabla
DataSet tablascasino = new DataSet();
tablascasino.Tables.Add(tablaTragamonedas);
return tablaTragamonedas;





}


}
}


Preguntas similares