[ Foro de C# ]

consulta y sql, datagridview

14-Jan-2015 15:59
Invitado (Fer)
3 Respuestas

desde una clase tengo mi consulta ya hecha


        public IDataReader GetPerfiles()
        {
            const string sql =

                  "SELECT *" +
                  "FROM Clientes ";
                

            var par = new ParameterList{ };
            return GetDataReader(sql);
        
        }


ahora en otra quiero mostrarla desde un gridview
como puedo hacer eso?


14-Jan-2015 23:58
Nacho Cabanes (+84)

Tendrás que hacer que los datos obtenidos de esa consulta sean el "DataSource" de tu DataGridView. Los pasos habituales salen a ser algo como:


string orden= "SELECT * FROM clientes";
 Connection c = new Connection();
 SqlDataAdapter dataAdapter = new SqlDataAdapter(orden, c.CadenaDeConexion);
 SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
 DataSet ds = new DataSet();
 dataAdapter.Fill(ds);
 dataGridView1.ReadOnly = true; 
 dataGridView.DataSource = ds.tables[0];




16-Jan-2015 18:31
Invitado (Fernando)

de alguna manera logre que el gridview me mostrara un dato, lo extraño es que yo pense que me deberia mostrar todos pero solo me muestra 1...
aqui dejo el codigo


            foreach (var cliente in Factory.Clientes.GetPerfiles())
            {
                string tamales = (cliente.RPU+"");

                GridView1.DataSource = (tamales);
                GridView1.DataBind()       
            }       
        }


al ejecutar me sale los datos
pero cada letra en diferentes celdas diferentes y verticalmente cuando no deberia de ser  así y mostrarme todo en una sola celda

Item
5
2
4
1
4
0
8
0
6
8
3
0


ahora estoy atorado aqui...


otra cosa

la consulta que genere, se encuentra en otra clase conque podría reutilizarla de manera de no hacer lo mismo que hago en el código de arriba por que eso de seleccionar los datos que quiero mostrar no me agrada, preferiría mostrar todo de una vez


18-Jan-2015 02:00
Nacho Cabanes (+84)

Es que no debes enlazar el GridView con el DataSource para cada dato. Esa es una operación que se hace una única vez. A partir de ahí, o lo llenas por completo de forma automática (más simple pero menos versátil), o bien vas tomando datos uno a uno e introduciéndoles en el GridView uno a uno (y eso da más juego, pero también obliga a conocer bien como se maneja un GridView; tendrás que hacer antes alguna prueba independiente de la base de datos).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)