none
Datos de un campo Longtext a datagridview

    Pregunta

  • Hola, tengo una base de datos en mysql, la cual tiene una de las tablas tiene un campo Longtext, este campo contiene una serie de datos concatenados pertenecientes a varios datos de otra tabla, por ejemplo: ["33","34","35","36","37","38","39"], donde cada uno de los números representan una serie de artículos de otra tabla.

    Lo que quiero es poder manipularlos individualmente, bien sea volcandolos a un datagridview, por ejemplo:

    DATAGRIDVIEW:

    PEDIDO 1--33---DESCRIPCIÓN

    PEDIDO 2--34---DESCRIPCIÓN

    ...

    Como puedo realizar esta operación? tenéis alguna idea?


    lunes, 1 de febrero de 2016 7:38

Respuestas

  • Estos datos los tenes en un String ?? , si es así puedes usar la función split() para separar los campos y de ahí los recorres con un bucle  y los vas agregando a tu tabla final del datagridview. Es una sugerencia seguro hay muchas formas de hacerlo.


    miércoles, 3 de febrero de 2016 11:24
  • Hola javito835638046

    En efecto exequiel22 toca un buen punto con split(), este ejemplo está incluido en el siguiente artículo, en la sección "Alternativas a String.Split"

    using System;
    using System.Text.RegularExpressions;
    
    public class Example
    {
       public static void Main()
       {
          String[] expressions = { "16 + 21", "31 * 3", "28 / 3",
                                   "42 - 18", "12 * 7",
                                   "2, 4, 6, 8" };
          String pattern = @"(\d+)\s+([-+*/])\s+(\d+)";
          foreach (var expression in expressions)
             foreach (Match m in Regex.Matches(expression, pattern)) {
                int value1 = Int32.Parse(m.Groups[1].Value);
                int value2 = Int32.Parse(m.Groups[3].Value);
                switch (m.Groups[2].Value)
                {
                   case "+":
                      Console.WriteLine("{0} = {1}", m.Value, value1 + value2);
                      break;
                   case "-":
                      Console.WriteLine("{0} = {1}", m.Value, value1 - value2);
                      break;
                   case "*":
                      Console.WriteLine("{0} = {1}", m.Value, value1 * value2);
                      break;
                   case "/":
                      Console.WriteLine("{0} = {1:N2}", m.Value, value1 / value2);
                      break;
                }
             }
       }
    }
    // The example displays the following output:
    //       16 + 21 = 37
    //       31 * 3 = 93
    //       28 / 3 = 9.33
    //       42 - 18 = 24
    //       12 * 7 = 84

    Estamos atentos a tus comentarios, espero te resulte!

    Saludos,

    Karen.

    _________________


    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.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.


    miércoles, 3 de febrero de 2016 16:03
    Moderador

Todas las respuestas

  • Hola javito835638046

    Gracias por consultar en los foros. Si los datos que quieres manipular vienen originalmente de otra table, ¿Por qué no la mandas directamente, sin necesidad de usar los datos que tienes concatenados? O ¿Tienes un requerimiento específico de utilizar esta tabla? De ser así, te pido nos compartas mas información para poder ayudarte de una manera mas puntual.

    Saludos,

    Karen.

    _________________


    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.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    martes, 2 de febrero de 2016 22:14
    Moderador
  • La base de datos que estoy manipulando ya estaba creado.

    El procedimiento que hace es realizar una linea de pedido y concatena en el campo artículos, los diferentes artículos que tiene el pedido. Lo que quiero saber es como manipularlos individualmente y estos se vuelquen a un datagridview.

    miércoles, 3 de febrero de 2016 7:40
  • Estos datos los tenes en un String ?? , si es así puedes usar la función split() para separar los campos y de ahí los recorres con un bucle  y los vas agregando a tu tabla final del datagridview. Es una sugerencia seguro hay muchas formas de hacerlo.


    miércoles, 3 de febrero de 2016 11:24
  • Hola javito835638046

    En efecto exequiel22 toca un buen punto con split(), este ejemplo está incluido en el siguiente artículo, en la sección "Alternativas a String.Split"

    using System;
    using System.Text.RegularExpressions;
    
    public class Example
    {
       public static void Main()
       {
          String[] expressions = { "16 + 21", "31 * 3", "28 / 3",
                                   "42 - 18", "12 * 7",
                                   "2, 4, 6, 8" };
          String pattern = @"(\d+)\s+([-+*/])\s+(\d+)";
          foreach (var expression in expressions)
             foreach (Match m in Regex.Matches(expression, pattern)) {
                int value1 = Int32.Parse(m.Groups[1].Value);
                int value2 = Int32.Parse(m.Groups[3].Value);
                switch (m.Groups[2].Value)
                {
                   case "+":
                      Console.WriteLine("{0} = {1}", m.Value, value1 + value2);
                      break;
                   case "-":
                      Console.WriteLine("{0} = {1}", m.Value, value1 - value2);
                      break;
                   case "*":
                      Console.WriteLine("{0} = {1}", m.Value, value1 * value2);
                      break;
                   case "/":
                      Console.WriteLine("{0} = {1:N2}", m.Value, value1 / value2);
                      break;
                }
             }
       }
    }
    // The example displays the following output:
    //       16 + 21 = 37
    //       31 * 3 = 93
    //       28 / 3 = 9.33
    //       42 - 18 = 24
    //       12 * 7 = 84

    Estamos atentos a tus comentarios, espero te resulte!

    Saludos,

    Karen.

    _________________


    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.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.


    miércoles, 3 de febrero de 2016 16:03
    Moderador