none
Se puede hacer sentencias de un data table en C#? RRS feed

  • Pregunta

  • Tengo información en un data table en c# pero quería saber si hay manera de hacer sentencias de ese data table 

    El data table esta así:

    Nombre      Fecha     Telefono       Lugar

    Datos         Datos      Datos          Datos

    Datos         Datos      Datos         Datos

    Datos         Datos      Datos         Datos

    lo que quiero es hacer una sentencia o bien solo llevarme 

    dos columnas de ese data table Nombre y telefono de la siguiente manera.

    Nombre     Telefono      

    Datos         Datos               

    Datos         Datos               

    Datos         Datos      


     DataTable dt = new DataTable();
    
                string szConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Directorio\Ejemplo.xlsx;Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'";
    
                using (OleDbConnection conn = new OleDbConnection(szConnectionString))
    
    
                {
                    conn.Open();
    
                    string query = "SELECT * FROM [ejmeplo2$]";
                    using (OleDbCommand cmd = new OleDbCommand(query, conn))
                    {
    
                        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                        da.Fill(dt);
    
                      
    Mi código lee datos de un archivo Excel pero solo quiero hacer sentencias de ciertas columnas 


    • Editado FFer Dom lunes, 7 de diciembre de 2020 20:30
    lunes, 7 de diciembre de 2020 19:52

Respuestas

  • Hola Fer

    Ahora veo que recién explicaste mejor.

    Si queres un DataTable (dt2) con sólo 2 columnas de otro DataTable (dt1) es así: 

    dt2 = (DataTable)dt1.Clone();
    dt2.Columns.RemoveAt(3);
    dt2.Columns.RemoveAt(1);
    dt2.Columns["Telefono"].SetOrdinal(1); // Hacer que Telefono sea la de índice 1, Nombre ya es la 0
    // Ahora dt2 tiene las columnas Nombre y Telefono
    

    Saludos

    Pablo

    • Marcado como respuesta FFer Dom martes, 8 de diciembre de 2020 2:09
    lunes, 7 de diciembre de 2020 21:02

Todas las respuestas

  • No se ha entendido nada. ¿A qué le llamas "hacer sentencias"? ¿Puedes mostrar un ejemplo de qué es lo que tienes en el datatable y qué clase de sentencia esperas obtener a partir de ello?

    EDITADO: Veo que el mensaje ha sido modificado y que ya existe más información. Si alguien lee este post pidiendo más información, que por favor lo disculpe. Tenía sentido cuando fue escrito.

    lunes, 7 de diciembre de 2020 20:05
    Moderador
  • Hola FFer Dom, 

      

    Si lo que quieres traer es nombre y telefono entonces porque no select nombre, telefono from [ejemplo2$] pero si pudieras explicar que quieres lograr para que la comunidad te pueda ayudar mejor.

    Gracias por usar los foros de MSDN.  

    Andres Aguilar 

    ____________________________  

     

    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.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    lunes, 7 de diciembre de 2020 20:45
    Moderador
  • Hola Fer

    Ahora veo que recién explicaste mejor.

    Si queres un DataTable (dt2) con sólo 2 columnas de otro DataTable (dt1) es así: 

    dt2 = (DataTable)dt1.Clone();
    dt2.Columns.RemoveAt(3);
    dt2.Columns.RemoveAt(1);
    dt2.Columns["Telefono"].SetOrdinal(1); // Hacer que Telefono sea la de índice 1, Nombre ya es la 0
    // Ahora dt2 tiene las columnas Nombre y Telefono
    

    Saludos

    Pablo

    • Marcado como respuesta FFer Dom martes, 8 de diciembre de 2020 2:09
    lunes, 7 de diciembre de 2020 21:02