none
Devolver resultados de datatable desde clase RRS feed

  • Pregunta

  • Buenas tardes me podrian apoyar con lo siguiente ya que apenas recien empiezo y me atore con los iguiente, lo que requiero es pasar los valores devueltos de mi consulta de sql y asignarselo a los texboxt de un formulario en especifico ya que con esto estoy intentando crear un boton de siquinete para que cada ves que precione me vaya mostrando los registros de mi bd pero no se mandar los valores obtenidos y asignarselos a los textbox en mi formulario espero me puedan ayudar gracias esto es mi codigo
      class Busqueda
        {
           public DataTable navigate_records(int inc)
            {
                DataTable dt = new DataTable();
                SqlDataAdapter da = new SqlDataAdapter();
                SqlCommand cmd = new SqlCommand();
                conexionbd conexion = new conexionbd();
                try
                {
                    string tb;
                    int ent;
    
                    conexion.abrir();
                   
    
                    cmd.CommandText = "select * from usuario";
                    da.Fill(dt);
                   
                    int maxrow;
    
                    maxrow = dt.Rows.Count - 1;
    
                    dt.Rows[inc].Field<string>(0).ToString();
                   dt.Rows[inc].Field<int>(1);
                   
                    return dt;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    conexion.cerrar();
                    da.Dispose();
                    
                }
            }
    
    
    
        }


    • Editado ivanws miércoles, 19 de agosto de 2020 14:40
    miércoles, 19 de agosto de 2020 14:38

Respuestas

Todas las respuestas

  • Hola ivanws,

    Aquí te adjunto 3 ejemplos para que te puedas dar una idea:

    Recupere datos de la base de datos y visualícelos en TextBox en la aplicación de Windows usando C#

    Visualización de datos SQL en un cuadro de texto con C # [fragmento de código]

    Execute SQL Query in a C# Textbox, and Show Result in Datagridview

    Espero que te sea de ayuda. Quedo pendiente de cualquier actualización. Gracias por levantar tu consulta en los foros de msdn.

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 


    miércoles, 19 de agosto de 2020 16:12
    Moderador
  • gracias espero me puedas ayudar ,yo estuve buscando pero no encontre como devolverlo solo encontre como hacerlo directo desde el form pero si lo hago asi va hacer mucho codigo por eso requiero unicamnete enviar los resultados y asignarlos.
    miércoles, 19 de agosto de 2020 16:19
  • Hola ivanws,

    Edité mi primer comentario, por favor revísalo a ver si resuelve tu duda.

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    miércoles, 19 de agosto de 2020 18:43
    Moderador

  • Muchas garcias por la ayuda pero es exactamente como tengo mi codigo es decir a mi codigo unicamente le asigno el textbox en el que quiero y ya me funciona aqui pongo el ejemplo del codigo en el form funcionando
      public DataTable navigate_records(int inc)
            {
                DataTable dt = new DataTable();
                SqlDataAdapter da = new SqlDataAdapter();
                SqlCommand cmd = new SqlCommand();
                conexionbd conexion = new conexionbd();
                try
                {
                    string tb;
                    int ent;
    
                    conexion.abrir();
                   
                 
    
                    cmd.CommandText = "select * from usuario";
                    da.Fill(dt);
                    
                    int maxrow;
    
                    maxrow = dt.Rows.Count - 1;
                    //Aqui asigno las columnas a cada textbox 
                   texbox1.txt= dt.Rows[inc].Field<string>(0).ToString();
                   texbox2.txt=dt.Rows[inc].Field<int>(1);
    Pero lo que realmente quiero es hacer esto en una clase y desde ahi mandar los resultados del  dt.rows hacia el form para ahi asignarselo al textbox y no tener todo el codigo de arriba directo en el form espero darme a entender
    miércoles, 19 de agosto de 2020 19:23
  • hola

    Lo que noto es que no retornas los datos como respuesta, para eso debes definir una class

    public class Dato
    {
    	public string Campo1 {get;set;}
    	public int Campo2 {get;set;}
    }

    entonces lo usas

    class Busqueda
    {
       public Dato navigate_records(int inc)
    	{
    		conexionbd conexion = new conexionbd();
    		try
    		{
    			string tb;
    			int ent;
    
    			conexion.abrir();
    		   
    			string query = "select * from usuario";
    			SqlCommand cmd = new SqlCommand(query, ??); 
    			
    			SqlDataAdapter da = new SqlDataAdapter(cmd);
    			DataTable dt = new DataTable();
    			da.Fill(dt);
    		   
    			Dato d = new Dato();
    			d.Campo1 = dt.Rows[inc].Field<string>(0).ToString();
    		        d.Campo2 = dt.Rows[inc].Field<int>(1);
    		   
    			return d;
    		}
    		catch (Exception ex)
    		{
    			MessageBox.Show(ex.ToString());
    		}
    		finally
    		{
    			conexion.cerrar();
    			da.Dispose();
    			
    		}
    	}
    
    }

    donde puse "??" deebrias poder asignar el SqlConnaction, pero la forma en como defines esa "conexiondb" la verdad no se como lo obtienes para usarlo en el SqlCommand

    Tambien podrias iterar los registros y retornar una lista

    class Busqueda
    {
            public List<Dato> navigate_records(int inc)
    	{
    		conexionbd conexion = new conexionbd();
    		try
    		{
    			string tb;
    			int ent;
    
    			conexion.abrir();
    		   
    			string query = "select * from usuario";
    			SqlCommand cmd = new SqlCommand(query, ??); 
    			
    			SqlDataAdapter da = new SqlDataAdapter(cmd);
    			DataTable dt = new DataTable();
    			da.Fill(dt);
    		   
    		   List<Dato> list = new List<Dato>();
    		   foreach(var row in dt.Rows)
    		   {
    			 Dato d = new Dato();
    			 d.Campo1 = dt.Rows[inc].Field<string>(0).ToString();
    		         d.Campo2 = dt.Rows[inc].Field<int>(1);
    			 list.Add(d);
    		   }
    		   
    		    return list;
    		}
    		catch (Exception ex)
    		{
    			MessageBox.Show(ex.ToString());
    		}
    		finally
    		{
    			conexion.cerrar();
    			da.Dispose();
    			
    		}
    	}
    
    
    
    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 20 de agosto de 2020 14:52
  • Hola ivanws,

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las respuestas proporcionadas?

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    viernes, 21 de agosto de 2020 1:22
    Moderador
  • Si ya quedo muchas gracias solo retorne el valor de dt u puse el metodo como statis datatble y ya pude gracias
    • Marcado como respuesta ivanws jueves, 27 de agosto de 2020 15:43
    sábado, 22 de agosto de 2020 19:13
  • Hola ivanws,

    Me alegro mucho de saber que pudiste resolver tu problema. Por favor, no olvides marcar la respuesta de la persona que sirvió como la respuesta a tu pregunta para que otras personas en un futuro puedan saber como lo resolviste. Gracias por levantar tu consulta en los foros de msdn.

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    lunes, 24 de agosto de 2020 21:26
    Moderador