none
GUARDAR DATOS DE UN DATAGRIDVIEW A UN SOLO CAMPO TABLA MYSQL SEPARADO POR COMAS. RRS feed

  • Pregunta

  • Muy buenas tardes tengan ud amigos del foro, tengo un problema que no puedo resolver y por eso acudo a uds.

    Paso a detallar mi problema, tengo un datagridview (visual studio 2015) en el que cargo los siguientes datos:

    fecha                 hora               peso               temp

    10/04/2021        12:20:21        45.65 Kg        32 Cº

    10/04/2021        14:10:00        45.65 Kg        35 Cº

    lo que necesito es guardar esos datos en un solo campo-(Mediciones varchar(500)) de una tabla mysql-(pacientes), separados por comas, no se si me explico bien mis estimados amigos, y luego necesito pasarlos de nuevo al datagridview para agregar nuevos datos si asi lo requiere el ususario. Estuve buscando por el foro y no pude encontrar una solucion.

    Desde ya muchisimas gracias a uds por su ayuda si me la pueden brindar con ejemplo les agradeceria infinitamente.  

    sábado, 10 de abril de 2021 17:51

Respuestas

  • Hola dj mac40 yo trabajo con c# pero la solución pasa por la lógica y no el lenguaje, lo que deberías hacer a la hora de guardar los datos es agregarlo ejemplo dgvMediciones.Rows(i).Cells(0).Value + ","+dgvMediciones.Rows(i).Cells(1).Value. Entonces una vez guardado cuando cargues el datagrid usas un split te dejo un ejemplo creas una variable char delimiter = Convert.ToChar(","); o char delimiter =',';

    Luego creas dos variables mas

    string fileRow;
    string[] fileDataField;

    y haces esto

    fileRow = fileReader.ReadLine();
    fileDataField = fileRow.Split(delimiter);

    dataGridView2.Rows.Add(fileDataField[0],fileDataField[1]);

    Esto lo tome de un proyecto que lee un archivo CSV pero supongo que aplica igual y tambien puedes elegir que tipo de caracter vas a usar para delimitar tus datos.Saludos

     
    • Marcado como respuesta dj mac40 lunes, 12 de abril de 2021 19:14
    domingo, 11 de abril de 2021 13:00
  • Hola:

    ¿Puedes explicar como cargas el DataGridview si es manualmente o tienes los datos en alguna tabla que NO es la tabla que tiene 1 campo?.

    > el problema es que necesito volver esos datos al datagrid para poder ingresar nuevas mediciones. <
    Si los datos que tienes en la tabla (la que tiene 1 campo) es el origen de datos, te aconsejo que uses una tabla con varios campos pues asi te da mas posibilidades.
    No se porque tienes la idea de usar solo 1 campo e introducir toda la informacion en dicha tabla.
    ¿ Puees describir como es la logica del proceso ?
    Cuanto mas expliques como es el caso, mas facilmente se te puede solucionar

    Un saludo desde Bilbo
    Carlos
    • Marcado como respuesta dj mac40 lunes, 12 de abril de 2021 19:14
    domingo, 11 de abril de 2021 19:29

Todas las respuestas

  • Hola:
    ¿Puedes poner el codigo que tienes para ver donde te has quedado "atascado", porque pides que te pongan el ejercicio completo?

    Un saludo desde Bilbo
    Carlos
    domingo, 11 de abril de 2021 4:57
  • Muy buenos días amigo J. Carlos Herrero, te agradezco muchísimo tu pronta respuesta y la verdad que ya me ayudaste en otros de mis proyectos así que espero me puedas brindar una guía para solucionar este.

    Te paso a comentar, este es el código que utilizo para pasar un datagrid a una tabla (Mysql):

    Private Sub Prueba()
            Try
                Dim i As Integer
                Dim Cant As Integer
                Cant = dgvMediciones.Rows.Count
                For i = 0 To Cant - 1
                    Using conex As New MySqlConnection(Conex_BD.Conexion_Local)
                        Using cmd = New MySqlCommand
                            cmd.CommandType = CommandType.StoredProcedure
                            cmd.CommandText = "SP_Prueba"
                            cmd.Connection = conex
                            cmd.Parameters.AddWithValue("@Fecha", dgvMediciones.Rows(i).Cells(0).Value)
                            cmd.Parameters.AddWithValue("@Hora", dgvMediciones.Rows(i).Cells(1).Value)
                            cmd.Parameters.AddWithValue("@Peso", dgvMediciones.Rows(i).Cells(2).Value)
                    cmd.Parameters.AddWithValue("@Temp", dgvMediciones.Rows(i).Cells(3).Value)
                            conex.Open()
                            cmd.ExecuteNonQuery()
                        End Using
                    End Using
                Next
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Prueba", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End Sub

    El resultado seria este:

    lo que yo necesito hacer es pasarlos a un solo campo asi:

    Tal vez no sea dificil ingresar los datos a la tabla de esta forma, el problema es que necesito volver esos datos al datagrid para poder ingresar nuevas mediciones.

    En tu experiencia mi estimado amigo J. Carlos Herrero tu que me aconsejarías, hacerlo de esta forma o hacer una tabla aparte con esas mediciones para tomar los datos de ahi cuando se cargue el formulario del paciente, esa es mi gran duda.

    Desde ya muchisimas gracias por tu inestimable ayuda, que tengas una muy buena jornada.

     
    domingo, 11 de abril de 2021 9:29
  • Hola dj mac40 yo trabajo con c# pero la solución pasa por la lógica y no el lenguaje, lo que deberías hacer a la hora de guardar los datos es agregarlo ejemplo dgvMediciones.Rows(i).Cells(0).Value + ","+dgvMediciones.Rows(i).Cells(1).Value. Entonces una vez guardado cuando cargues el datagrid usas un split te dejo un ejemplo creas una variable char delimiter = Convert.ToChar(","); o char delimiter =',';

    Luego creas dos variables mas

    string fileRow;
    string[] fileDataField;

    y haces esto

    fileRow = fileReader.ReadLine();
    fileDataField = fileRow.Split(delimiter);

    dataGridView2.Rows.Add(fileDataField[0],fileDataField[1]);

    Esto lo tome de un proyecto que lee un archivo CSV pero supongo que aplica igual y tambien puedes elegir que tipo de caracter vas a usar para delimitar tus datos.Saludos

     
    • Marcado como respuesta dj mac40 lunes, 12 de abril de 2021 19:14
    domingo, 11 de abril de 2021 13:00
  • Hola:

    ¿Puedes explicar como cargas el DataGridview si es manualmente o tienes los datos en alguna tabla que NO es la tabla que tiene 1 campo?.

    > el problema es que necesito volver esos datos al datagrid para poder ingresar nuevas mediciones. <
    Si los datos que tienes en la tabla (la que tiene 1 campo) es el origen de datos, te aconsejo que uses una tabla con varios campos pues asi te da mas posibilidades.
    No se porque tienes la idea de usar solo 1 campo e introducir toda la informacion en dicha tabla.
    ¿ Puees describir como es la logica del proceso ?
    Cuanto mas expliques como es el caso, mas facilmente se te puede solucionar

    Un saludo desde Bilbo
    Carlos
    • Marcado como respuesta dj mac40 lunes, 12 de abril de 2021 19:14
    domingo, 11 de abril de 2021 19:29
  • Hola,

    ¿Alguna novedad sobre la consulta realizada?

    Gracias por usar los foros de MSDN.

    Eric Ruiz

    ____________________________

    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 siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    lunes, 12 de abril de 2021 13:57
    Moderador
  • Muy buenos días tengan Uds. mis amigos EnzoTuc40 y J. Carlos Herrero muchísimas gracias por responder a mi consulta.

    La verdad mi estimado amigo J. Carlos Herrero tienes toda la razón, la verdad que estuve haciendo pruebas con la solución que me envió el amigo EnzoTuc40 y viendo bien el tema me di cuenta que lo que yo quera implementar en mi sistema va a ser mas un problema que una solución, ya que si mi cliente necesita saber por ejemplo el historial del peso solamente del paciente con una tabla alternativa en la que guarde las mediciones con una sola consulta select y llamar al campo peso voy a tener toda la información sin tener que recurrir a consultas mas complejas o a split para obtener esos datos, así que he optado por mi idea original de una tabla (mediciones) en vez de un solo campo.

    Muchisimas gracias mis estimados amigos por ayudarme a solucionar mi problema, que tengan muy buenos tardes.

    lunes, 12 de abril de 2021 19:31