none
Como colocar gran cantidad de datos en un form en vb.net RRS feed

  • Pregunta

  • Hola, tengo tengo que hacer una planilla en un form pero el problema que tengo, es que es mucha la cantidad de datos que debo ingresar (labels y textboxs). Pero no me da el largo del form, me convendria hacer un datagridview editable? o que me recomiendan??
    viernes, 3 de agosto de 2012 17:52

Todas las respuestas

  • Hola:

    Me gustaria ayudarte pero con la informacion que proporcionas no logro entender lo que quieres, que es una "planilla" para ti?....


    Saludos desde Monterrey, N.L. México

    Luis Escobar :D


    viernes, 3 de agosto de 2012 18:39
  • Hola, tengo una planilla en Excel que tiene ID, Nombre, Apellido, país, Dirección, localidad, edad, entre otros. En definitiva es mucha la información que posee la planilla de Excel, mi idea es pasar todos esos datos a un Form, pero el problema que poseo es que al ser tanta información no me da el ancho del Form, quiero que el form se parezca a la planilla. Mi idea era hacer un Datagridview editable ya que en el mismo puedo ingresar todos los datos a lo largo (columnas), además poder ingresar los datos nuevos a través del datagridview, y que en el mismo se pueda insertar, modificar, eliminar, buscar, etc. Como se podría hacer o que me convendría realizar????

     

    viernes, 3 de agosto de 2012 19:18
  • Ahhh! entonces quieres las columnas del Excel...

    En definitiva para mi lo mas conveniente seria usar un  DataGridView...la pregunta aqui seria como lo llenarias? desde el mismo excel o desde controles TexTBox por ejemplo? ya que si piensasa traer los datos del mismo excel bastara con que insertes en tu formulario un control DataGridView, hacer la consulta de seleccion al Excel, cargar los datos a un DataTable, DataSet y establecer este como fuente de datos del DGV veras que en el DGV te aparecen tantas columnas tengas en el Excel, el detalle sera que te aparecera una barra de desplazamiento en la parte de abajo del DGV pero este mismo te beneficia ya que no tienes que agrandar tu Formulario simplemente te desplazarias con la barra...

    Si planeas ir llenando el DGv por medio de controles TextBox entonces en tiempo de diseño creas tantas columnas como necesites, esto es todo...


    Saludos desde Monterrey, N.L. México

    Luis Escobar :D


    viernes, 3 de agosto de 2012 19:37
  • Hola, mi idea era que desde el mismo DataGridView se puedan insertar los datos, osea que a travez del mismo se pueda escribir el ID, Nombre, Edad, etc. y luego presionar el boton guardar y todo se guarda, y que tambien se pueda eliminar, modificar , etc.

    viernes, 3 de agosto de 2012 19:49
  • desde el mismo DataGridView se puedan insertar los datos, osea que a travez del mismo se pueda escribir el ID, Nombre, Edad, etc.

    Si claro, entonces toma la segunda opcion, crea en tiempo de diseño todas las columnas que usaras, simplemente veras un Scroll horizontal para poder navegar y ver todas las columnas....

    Solo que tendras que configurar debidamente tus columnas para que por ejemplo en la celda donde escribiran el Id no acepte letras o caracteres especiales...


    Saludos desde Monterrey, N.L. México

    Luis Escobar :D


    viernes, 3 de agosto de 2012 19:53
  • y por ejemplo para guardar los datos desde el datagridview como lo deberia hacer. este el codigo que utilizo para el boton guardar:

    Private Sub cmdguardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdguardar.Click

           

            Dim Query As String = "INSERT INTO agenda(ID,Nombre,Provincia,Departamento,Direccion, Nro, Tel, Cel, Fax, Email)VALUES(?ID,?Nombre,?Provincia,?Departamento,?Direccion, ?Nro, ?Tel, ?Cel, ?Fax, ?Email)"

     

            Dim comando As New MySqlCommand(Query, conexion)

            comando.Parameters.AddWithValue("?ID", CInt(Textid.Text))

            comando.Parameters.AddWithValue("?Nombre", Textnombre.Text)

            comando.Parameters.AddWithValue("?Provincia", provinciaa.Text)

            comando.Parameters.AddWithValue("?Departamento", textdepartamento.Text)

            comando.Parameters.AddWithValue("?Direccion", Textdireccion.Text)

            comando.Parameters.AddWithValue("?Nro", Textnumero.Text)

            comando.Parameters.AddWithValue("?Tel", Texttel.Text)

            comando.Parameters.AddWithValue("?Cel", Textcel.Text)

            comando.Parameters.AddWithValue("?Fax", Textfax.Text)

            comando.Parameters.AddWithValue("?Email", Textemail.Text)

     

            comando.ExecuteNonQuery()

     

    If MsgBox("Se guardo correctamente el Registro", vbInformation, "titulo") Then

     

    End if

     

        End Sub

    que modificacion deberia hacer??

    viernes, 3 de agosto de 2012 21:28
  • Hola: Antes que nada la cadena de conexion no veo ahi en que momento habres la BD, se recomienda que la abras y cierres la BD en el momento en que necesites trabajar con ella y que nunca declares una conexion global...esto seria como prender un carro desde la mañana cuando en realidad lo usaras en la noche...:D Ahora para poder guardar el contenido de un DGV deberias de analizar este articulo:

    http://social.msdn.microsoft.com/Forums/es/vbes/thread/7ab43a07-0fc9-4911-b370-d22e9e2f64ae Ahi lo explican demasiado bien!


    Saludos desde Monterrey, N.L. México

    Luis Escobar :D


    viernes, 3 de agosto de 2012 22:27
  • Pero no me da el largo del form, me convendria hacer un datagridview editable? o que me recomiendan?

    porque no usas el TabControl

    con este podrias agrupar datos en varias solapas

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 4 de agosto de 2012 4:30
  • el codigo esta correcto pero para que usas el if en el msgbox ? porque no directamente

    MsgBox("Se guardo correctamente el Registro", vbInformation, "titulo")


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 4 de agosto de 2012 4:36
  • Hola, mirando el link que me pasaste logre hacer esto:

    Imports MySql.Data.MySqlClient
    Public Class frmventas
        Dim conexion As New MySqlConnection("Server=localhost; Database=base; Uid=root; Pwd=2424;")

    Private Sub frmventas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            conexion.Open()
        End Sub

     Private Sub cmdguardar2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdguardar2.Click

            For Each row As DataGridViewRow In DataGridView1.Rows

                Dim query As String = "INSERT INTO Presupuesto(Unidad_de_negocio, Contrato_Marco_nro, Indice_zona, Indice_rubro, Fecha, Codigo_de_edificio, Edificio, Descripcion_gral, nro_de_presupuesto, Plazo_de_obra, nro_de_ticket, Importe_total, Contratista, Zona, Requerimiento_de_ticket, Rubro, Item, Descripcion, Cant, Unidad, Precio_unitario, Subtotal, Observaciones, Total_sin_iva)VALUES (?Unidad_de_negocio, ?Contrato_Marco_nro, ?Indice_zona, ?Indice_rubro, ?Fecha, ?Codigo_de_edificio, ?Edificio, ?Descripcion_gral, ?nro_de_presupuesto, ?Plazo_de_obra, ?nro_de_ticket, ?Importe_total, ?Contratista, ?Zona, ?Requerimiento_de_ticket, ?Rubro, ?Item, ?Descripcion, ?Cant, ?Unidad, ?Precio_unitario, ?Subtotal, ?Observaciones, ?Total_sin_iva)"

                Dim cmd As New MySqlCommand(query, conexion)

                cmd.Parameters.AddWithValue("?unidad_de_negocio", textunidad.Text)
                cmd.Parameters.AddWithValue("?Contrato_Marco_nro", Textcontrato.Text)
                cmd.Parameters.AddWithValue("?Indice_zona", Textindicezona.Text)
                cmd.Parameters.AddWithValue("?Indice_rubro", Textindicerubro.Text)
                cmd.Parameters.AddWithValue("?Fecha", fecha.Text)
                cmd.Parameters.AddWithValue("?Codigo_de_edificio", row.Cells("Codigo_de_Edificio").Value)
                cmd.Parameters.AddWithValue("?Edificio", row.Cells("edificio").Value)
                cmd.Parameters.AddWithValue("?Descripcion_gral", row.Cells("descripcion_general").Value)
                cmd.Parameters.AddWithValue("?nro_de_presupuesto", row.Cells("Column1").Value)
                cmd.Parameters.AddWithValue("?Plazo_de_obra", row.Cells("plazo_de_obra").Value)
                cmd.Parameters.AddWithValue("?nro_de_ticket", row.Cells("nro_de_ticket").Value)
                cmd.Parameters.AddWithValue("?Importe_total", row.Cells("importe_total").Value)
                cmd.Parameters.AddWithValue("?Contratista", row.Cells("contratista").Value)
                cmd.Parameters.AddWithValue("?Zona", row.Cells("zona").Value)
                cmd.Parameters.AddWithValue("?Requerimiento_de_ticket", row.Cells("requerimiento_de_ticket").Value)
                cmd.Parameters.AddWithValue("?Rubro", row.Cells("rubro").Value)
                cmd.Parameters.AddWithValue("?Item", row.Cells("item").Value)
                cmd.Parameters.AddWithValue("?Descripcion", row.Cells("descripcion").Value)
                cmd.Parameters.AddWithValue("?Cant", row.Cells("cant").Value)
                cmd.Parameters.AddWithValue("?Unidad", row.Cells("unidad").Value)
                cmd.Parameters.AddWithValue("?Precio_unitario", row.Cells("precio_unitario").Value)
                cmd.Parameters.AddWithValue("?Subtotal", row.Cells("subtotal").Value)
                cmd.Parameters.AddWithValue("?Observaciones", row.Cells("observaciones").Value)
                cmd.Parameters.AddWithValue("?Total_sin_iva", textsiniva.Text)

                cmd.ExecuteNonQuery()

                MsgBox("Se guardo correctamente el Registro", vbInformation, "titulo")

            Next

        End Sub

     Private Sub cmdsalir2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsalir2.Click
            conexion.Close()
        End Sub
    End Class

    En el form tengo dos Datagridview (datagridview1 y datagridview2) los columnas que posee el datagridview1 van desde Codigo_de_Edificio hasta requerimiento_de_ticket, y las columnas del datagridview2 van desde rubro hasta observaciones. Pero el datagridview2 no lo nombro en   For Each row As DataGridViewRow In DataGridView1.Rows, Como puedo enlazar o modificar el codigo para hacer referencia tambien al datagridview2??


    • Editado Temistocless sábado, 4 de agosto de 2012 6:25 error mio
    sábado, 4 de agosto de 2012 6:11
  • SI, es verdad igual funciona sin el IF, Gracias¡¡¡
    sábado, 4 de agosto de 2012 6:11