lunes, 7 de marzo de 2016

C# - Recorrer filas y columnas de un DataTable

  foreach (DataRow row in dt.Rows)
            {
                foreach (DataColumn column in dt.Columns)
                {
                    //                     row[column] obtiene el valor de las columnas de la fila
                    row[column] = row[column].ToString().Replace('"', ' ').Trim();
                    row[column] = row[column].ToString().Replace(@"\", @" ").Trim();
                }
            }

8 comentarios:

  1. foreach (DataRow row in dt.Rows)
    {
    ObtenerDatosFilial dato = new ObtenerDatosFilial();
    dato.strIdFilial = row["NombreColumna"].ToString();
    dato.StrnombreFilial = row["NombreColumna"].ToString();
    Lista.Add(dato);
    }

    ResponderEliminar
    Respuestas
    1. excelente! lo voy a probar.

      Eliminar
    2. Me gustaría hacer esto pero en SQL espero y puedan ayudarme.
      saludos!!

      Eliminar
    3. que es lo que quieres hacer?

      Eliminar
    4. Lo que necesito hacer es recorrer una tabla en la cual se almacenan datos de facturación,pero necesito ir comparando entre celdas.
      en la tabla tengo tipo operacion, cliente, proveedor, edocument, subdivisión, factura(folio fiscal), entonces un cliente puede tener mas de una factura y los datos mencionados como tipo operacion cliente...etc serán iguales pero el campo factura es diferente, lo que intento hacer es que solo me ponga una sola vez los datos del cliente si es que tiene mas factura dejando las casillas de los campos en blanco y poniendo solamente la factura, espero y me haya explicado.

      Eliminar
    5. muy sencillo, puedes utlizar un cursor (o un ciclo while) e ir llenando una tabla temporal (@ o #), no se si me sigues la idea.

      Eliminar
  2. PARTE 1/2 (no me deja pegar todo el código, máximo 4096 caracteres)
    ---
    SELECT *
    FROM leasecom..v_clientes a
    INNER JOIN leasecom..t_direcciones b ON a.rut = b.rut_origen
    WHERE a.rut = 96928510
    ---


    CREATE TABLE #TEMPORAL
    (
    rut INT ,
    dv VARCHAR(1) ,
    nombre VARCHAR(200) ,
    ejecutivo_cartera INT ,
    cod_act_eco INT ,
    giro VARCHAR(200) ,
    fecha_constitucion DATETIME ,
    email VARCHAR(200) ,
    telefono_1 VARCHAR(200) ,
    contacto VARCHAR(200) ,
    direccion VARCHAR(500) ,
    cod_comuna INT ,
    id_cliente_banco INT ,
    cod_oficina_leasing INT ,
    cod_origen INT ,
    rut_origen INT ,
    cod_tipo_direccion INT ,
    correlativo INT ,
    direccion2 VARCHAR(500) ,
    comuna INT ,
    email2 VARCHAR(500) ,
    telefono VARCHAR(200) ,
    telefono2 VARCHAR(200) ,
    fax VARCHAR(200) ,
    estado INT
    )

    DECLARE @rut INT ,
    @dv VARCHAR(1) ,
    @nombre VARCHAR(200) ,
    @ejecutivo_cartera INT ,
    @cod_act_eco INT ,
    @giro VARCHAR(200) ,
    @fecha_constitucion DATETIME ,
    @email VARCHAR(200) ,
    @telefono_1 VARCHAR(200) ,
    @contacto VARCHAR(200) ,
    @direccion VARCHAR(500) ,
    @cod_comuna INT ,
    @id_cliente_banco INT ,
    @cod_oficina_leasing INT ,
    @cod_origen INT ,
    @rut_origen INT ,
    @cod_tipo_direccion INT ,
    @correlativo INT ,
    @direccion2 VARCHAR(500) ,
    @comuna INT ,
    @email2 VARCHAR(500) ,
    @telefono VARCHAR(200) ,
    @telefono2 VARCHAR(200) ,
    @fax VARCHAR(200) ,
    @estado INT


    DECLARE c_ejemplo CURSOR
    FOR
    SELECT *
    FROM leasecom..v_clientes a
    INNER JOIN leasecom..t_direcciones b ON a.rut = b.rut_origen
    WHERE a.rut = 96928510


    OPEN c_ejemplo
    FETCH c_ejemplo
    INTO @rut, @dv, @nombre, @ejecutivo_cartera, @cod_act_eco, @giro,
    @fecha_constitucion, @email, @telefono_1, @contacto, @direccion,
    @cod_comuna, @id_cliente_banco, @cod_oficina_leasing, @cod_origen,
    @rut_origen, @cod_tipo_direccion, @correlativo, @direccion2, @comuna,
    @email2, @telefono, @telefono2, @fax, @estado
    WHILE ( @@FETCH_STATUS = 0 )
    BEGIN
    --INSTRUCCIONES

    IF ( ( SELECT COUNT(*)
    FROM #TEMPORAL
    WHERE rut = @rut
    ) = 0 )
    BEGIN
    INSERT INTO #TEMPORAL
    ( rut ,
    dv ,
    nombre ,
    ejecutivo_cartera ,
    cod_act_eco ,
    giro ,
    fecha_constitucion ,
    email ,
    telefono_1 ,
    contacto ,
    direccion ,
    cod_comuna ,
    id_cliente_banco ,
    cod_oficina_leasing ,
    cod_origen ,
    rut_origen ,
    cod_tipo_direccion ,
    correlativo ,
    direccion2 ,
    comuna ,
    email2 ,
    telefono ,
    telefono2 ,
    fax ,
    estado
    )
    VALUES ( @rut ,
    @dv ,
    @nombre ,
    @ejecutivo_cartera ,
    @cod_act_eco ,
    @giro ,
    @fecha_constitucion ,
    @email ,
    @telefono_1 ,
    @contacto ,
    @direccion ,
    @cod_comuna ,
    @id_cliente_banco ,
    @cod_oficina_leasing ,
    @cod_origen ,
    @rut_origen ,
    @cod_tipo_direccion ,
    @correlativo ,
    @direccion2 ,
    @comuna ,
    @email2 ,
    @telefono ,
    @telefono2 ,
    @fax ,
    @estado

    )

    END

    ResponderEliminar
  3. Parte 2/2 Esto se me ocurre abordandolo de forma rapida, pero como siempre deben haber otros caminos.-
    ELSE
    BEGIN
    INSERT INTO #TEMPORAL
    ( rut ,
    dv ,
    nombre ,
    ejecutivo_cartera ,
    cod_act_eco ,
    giro ,
    fecha_constitucion ,
    email ,
    telefono_1 ,
    contacto ,
    direccion ,
    cod_comuna ,
    id_cliente_banco ,
    cod_oficina_leasing ,
    cod_origen ,
    rut_origen ,
    cod_tipo_direccion ,
    correlativo ,
    direccion2 ,
    comuna ,
    email2 ,
    telefono ,
    telefono2 ,
    fax ,
    estado

    )
    VALUES ( NULL ,
    NULL ,
    NULL ,
    NULL ,
    NULL ,
    NULL ,
    NULL ,
    NULL ,
    NULL ,
    NULL ,
    NULL ,
    NULL ,
    NULL ,
    NULL ,
    @cod_origen ,
    @rut_origen ,
    @cod_tipo_direccion ,
    @correlativo ,
    @direccion2 ,
    @comuna ,
    @email2 ,
    @telefono ,
    @telefono2 ,
    @fax ,
    @estado

    )
    END



    FETCH c_ejemplo
    INTO @rut, @dv, @nombre, @ejecutivo_cartera, @cod_act_eco, @giro,
    @fecha_constitucion, @email, @telefono_1, @contacto, @direccion,
    @cod_comuna, @id_cliente_banco, @cod_oficina_leasing, @cod_origen,
    @rut_origen, @cod_tipo_direccion, @correlativo, @direccion2,
    @comuna, @email2, @telefono, @telefono2, @fax, @estado
    END

    CLOSE c_ejemplo
    DEALLOCATE c_ejemplo


    SELECT ISNULL(rut, '') ,
    ISNULL(dv, '') ,
    ISNULL(nombre, '') ,
    ISNULL(ejecutivo_cartera, '') ,
    ISNULL(cod_act_eco, '') ,
    ISNULL(giro, '') ,
    ISNULL(fecha_constitucion, '') ,
    ISNULL(email, '') ,
    ISNULL(telefono_1, '') ,
    ISNULL(contacto, '') ,
    ISNULL(direccion, '') ,
    ISNULL(cod_comuna, '') ,
    ISNULL(id_cliente_banco, '') ,
    ISNULL(cod_oficina_leasing, '') ,
    cod_origen ,
    rut_origen ,
    cod_tipo_direccion ,
    correlativo ,
    direccion2 ,
    comuna ,
    email2 ,
    telefono ,
    telefono2 ,
    fax ,
    estado
    FROM #TEMPORAL
    DROP TABLE #TEMPORAL

    ResponderEliminar