Foros del Web » Programación para mayores de 30 ;) » .NET »

Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Estas en el tema de Enumerar reistros desde un datagridview en vb.net 2010 a mysql en el foro de .NET en Foros del Web. Buenas soy nuevo en programacion y en estos momentos estoy desarrollando un pequeño sistema en el cual necesito importar a una base de datos mysql ...
  #1 (permalink)  
Antiguo 29/11/2012, 09:03
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 53
Antigüedad: 11 años, 5 meses
Puntos: 0
Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Buenas soy nuevo en programacion y en estos momentos estoy desarrollando un pequeño sistema en el cual necesito importar a una base de datos mysql desde excel a traves de VisualBasic.net 2010... Les explico de forma diaria me envian en excel diferentes cantidades de registros los cuales debo almacenarlos en la BD en estos momentos tengo un formulario con un datagrid que me muestra los datos del excel, pero lo que necesito es que me enumere esos registros por ejemplo hoy me envian el excel con 15 registros por lo que necesito que me los enumere del 1 al 15 y si mañana me envian 11 registros que me lo enumere del 1 al 11, espero puedan entenderme... y otra cosa es que en el archivo que me envian a diario hay un campo que me lo envian con 10digitos y necesito que almacene los 8 primeros como haria con eso tambien?

Muchas Gracias de antemano

Espero puedan ayudarme
  #2 (permalink)  
Antiguo 29/11/2012, 14:00
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Cuando lees el excel, si no me equivoco eso se realiza con un SELECT al archivo o no?

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 30/11/2012, 08:59
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 53
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Buena

A cual de las preguntas me estas respondiendo?... Si me puedes ayudar con el codigo cualquiera que sea la respuesta te aradezco
  #4 (permalink)  
Antiguo 30/11/2012, 10:10
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Realmente no te estaba dando respuesta, te estaba preguntando por lo siguiente:

En SQL Server hay una instruccion que nos permite Numerar las filas del Select, algo como esto:

Código:
SELECT row_number() over (ORDER BY S.intCodSuscriptor), * FROM tblEmpleados
Cuando te pregunte si para cargar el archivo de excel se realiza un SELECT era para ver si agregando el row_number() over (ORDER BY CAMPO_DEL_ARCHIVO) te cargaba la informacion ya numerada.

Si es asi, seria cuestion de probarlo.


Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #5 (permalink)  
Antiguo 30/11/2012, 12:03
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 53
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Ah ok ahora si entendi lo que me quisiste decir anteriormente... pero te cuento que no me funciona... No c si sabras de alguna otra solucion...

Muchisimas gracias de todas maneras por tu colaboracion
  #6 (permalink)  
Antiguo 30/11/2012, 12:25
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Como lees el archivo de excel?
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #7 (permalink)  
Antiguo 30/11/2012, 12:52
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 53
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

El archivo de excel lo leo con un select como bien tu me decias antes... aqui te coloco el codigo completo para que lo veas... lo q necesito es una especie de contador para que se me guarden la cantidad de registros que se almacenen

Imports System.Data.OleDb 'Importacion necesaria para trabajar con ficheros excel

Public Class frmInclusionantigua
'EVENTO CLICK DEL BOTON XLSX
Private Sub btnXLS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXLSX.Click
'Instanciamos nuestro cuadro de dialogo
Dim openFileDialog1 As New OpenFileDialog
'Directorio Predeterminado
openFileDialog1.InitialDirectory = "C:\"
'Filtramos solo archivos con extension *.xlsx
openFileDialog1.Filter = "Archivos de Microsoft Office Excel (*.xlsx)|*.xlsx"
'Si se presiona abrir entonces...
If openFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
'Asignamos la ruta donde se almacena el fichero excel que se va a importar
txtRutaXLS.Text = openFileDialog1.FileName

'Instanciamos nuestra cadena de conexion especial para excel,indicando la ruta del fichero
Dim cadconex As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Me.txtRutaXLS.Text.Trim & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"""
Dim cn As New OleDb.OleDbConnection(cadconex)
Dim cmd As New OleDbCommand
Dim da As New OleDb.OleDbDataAdapter
Dim dt As New DataTable

cmd.Connection = cn
'Consultamos la hoja llamada GENERAL$ de nuestro archivo *.xlsx
cmd.CommandText = "select * from [GENERAL$]"
cmd.CommandType = CommandType.Text
da.SelectCommand = cmd
'Llenamos el datatable
da.Fill(dt)
'Llenamos el Datagridview
dgvImportacion.DataSource = dt
'Ajustamos las columnas del DataGridView
dgvImportacion.AutoSizeColumnsMode = 6
End If
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click
Me.Visible = False
Me.Dispose()
frmMenu.Show()
End Sub

Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
Dim cn As New MySqlConnection(frmConexion.ConexionMySQL)
cn.Open()
Try

Dim sqli As String = "INSERT INTO operaciones (campo1,campo2,campo3)" & _
"VALUES (@campo1,@campo2,@campo3)"

'Recorremos el Datagridview
For Each fila As DataGridViewRow In dgvImportacion.Rows
'Dependiendo del Datagrid se colocan las filas
Dim cmd As New MySqlCommand(sqli, cn)
cmd.Parameters.AddWithValue("@campo1", fila.Cells(1).Value)
cmd.Parameters.AddWithValue("@campo2", fila.Cells(2).Value)
cmd.Parameters.AddWithValue("@campo3", fila.Cells(3).Value)
'Ejecutar instruccion sql Insert
cmd.ExecuteNonQuery()
Next
MessageBox.Show("Registros Ingresados con Exito...")
Catch ex As Exception
'Anunciamos el error si lo hay
MsgBox(ex.Message.ToString)
MsgBox("no se pudo cargar a la base de datos")
End Try
End Sub
End Class
  #8 (permalink)  
Antiguo 30/11/2012, 13:04
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Hola.

Si necesitas el total de registros.... despues de llenar la tabla,

Código VB:
Ver original
  1. da.Fill(dt)

Puedes hacer esto:

Código C#:
Ver original
  1. int registros = da.Rows.Count;

Si necesitas antes de llevarlos a la base de datos enumerar cada uno de los registros, agrega una nueva columna a la tabla y le llenas en un ciclo.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #9 (permalink)  
Antiguo 30/11/2012, 13:56
Avatar de emmax  
Fecha de Ingreso: agosto-2010
Ubicación: Sonora
Mensajes: 172
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Hola heruxz, podrias probar con lo siguiente, tal vez te sirva, prueba una vez llenado el grid agregar una columna y mediante un for asignarle el valor que quieras.

para agregar la columna podrias utilizar DataGridViewTextBoxColumn ejemplo:
Código vb:
Ver original
  1. Dim Columna As New DataGridViewTextBoxColumn
Código vb:
Ver original
  1. Me.DataGridview.Columns.Add(Columna)

Ya aqui con un For puedes asignarle el valor a la columna para que te los numere.

Saludos...
  #10 (permalink)  
Antiguo 04/12/2012, 12:36
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 53
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Muchisimas gracias ya resolvi esa duda... Ahora queria ver si me podrian ayudar con otra :D... Necesito extraer de un registro de 11 caracteres los valores 5 y 6 sabrian como puedo hacerlo?...

por ejemplo algo asi me dijeron que era pero no me funciona me extrae las letras 5 y 6 pero del nombre del campo no del registro... espero contar con su ayuda y gracias

Dim sqli As String = "INSERT INTO operaciones (campo1,campo2,campo3)" & _
"VALUES (@campo1,@campo2,@campo3)"

'Recorremos el Datagridview
For Each fila As DataGridViewRow In dgvImportacion.Rows
'Dependiendo del Datagrid se colocan las filas
Dim cmd As New MySqlCommand(sqli, cn)
cmd.Parameters.AddWithValue("@campo1", fila.Cells(1).Value)
cmd.Parameters.AddWithValue("@campo2", fila.Cells(2).Value)
cmd.Parameters.AddWithValue("@campo3", "campo1".Substring(4, 2)))
'Ejecutar instruccion sql Insert
cmd.ExecuteNonQuery()
  #11 (permalink)  
Antiguo 04/12/2012, 13:05
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 53
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

ya encontre la solucion muchas gracias de todas maneras..
  #12 (permalink)  
Antiguo 05/12/2012, 12:43
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 53
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Soy yo de nuevo ;)... tengo otra duda les explico el formulario esta funcionando al 100% pero hay un problemita... En el momento que el archivo esta almacenando los registros de Excel en la BD despues de darle al boton guardar, si hay algun error en cualquiera de los registros la aplicacion me da el error pero igual almacena los primeros registros antes de encontrar el registro con el error...

Es decir me almacena los primeros 53 registros que estan bien de estructura pero si el 54 tiene una estructura que no es acorde me lanza el error pero igual almacena en la BD los primeros 53 registros y al tratar de importar de nuevo el archivo de excel no me deja ya que dice que la primary key no se puede duplicar y tengo que meterme en la BD para eliminar todo desde el DELETE FROM CAMPO para poder iniciar de nuevo la importacion una vez corregido el error en la estructura del registro....

Ahora lo que quiero es que al arrojarme el error no almacene nada en la BD...
  #13 (permalink)  
Antiguo 05/12/2012, 13:05
BalamKhai
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Enumerar reistros desde un datagridview en vb.net 2010 a mysql

Cita:
Iniciado por heruxz Ver Mensaje
Ahora lo que quiero es que al arrojarme el error no almacene nada en la BD...

Buen día, no se si te sea útil esto, pero podrías crear una tabla adicional temporal con el nombre tmpNombreDeTabla ( o como le querás poner), y ahí guardar los datos de excel. Siempre, antes de cargar los datos de excel, borras todos los datos que estén guardados en esta tabla temporal, y si al final no hubo error, los trasladas a la tabla definitiva.

La siguiente ves que cargues a la tabla temporal tu archivo de excel, como primero borras todos los registros, siempre tendrás los datos del excel que corresponden.

Solo una sugerencia, espero te sirva.
Saludos.

Etiquetas: datagridview, enumerar, mysql, sql, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:34.