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

Como pasar datos de un datagridview a una base de datos sql

Estas en el tema de Como pasar datos de un datagridview a una base de datos sql en el foro de .NET en Foros del Web. Hola, tengo una pregunta que aun no puedo resolver desde hace dos semanas, a pesar que he buscado información. Mi proyecto en VB necesita el ...

  #1 (permalink)  
Antiguo 13/08/2012, 18:39
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Como pasar datos de un datagridview a una base de datos sql

Hola, tengo una pregunta que aun no puedo resolver desde hace dos semanas, a pesar que he buscado información. Mi proyecto en VB necesita el siguiente mecanismo: OJALA ME PUEDAN AYUDAR.
1. Necesito un formulario que contenga un datagrid que visualice los datos importados desde excel (a traves de un botón) es decir. hago clic en el boton "abrir" y el datagrid visualizará una tabla de excel (.xls)
2. Luego otro botón (btn_guardar) que permita que esos datos se guarden en una base de datos ya creada en mi proyecto (la base de datos se llama LISTANEXOS y la tabla ANEXOS)


he podido leer en otros sitios web que primero tienes que abrir una conexión (he alli el problema) no se cómo abrir esa conexión. tampoco se que instrucciones agregar en el botón guardar para que se guarde en mi base de datos.

porfavor ayuda!! que ya no se que hacer. mi proyecto sólo necesita eso para terminar. les agradecería mucho que me ayuden.


aquí les envío una captura de como está distribuído el formulario. ver


  #2 (permalink)  
Antiguo 14/08/2012, 08:42
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Hola ggsradas, te explico en el siguiente codigo un ejemplo para que te guies. Como no indicaste con que lenguaje estas trabajando, te lo deje en VB.NET :

Primero importa la siguiente librería
Código vb:
Ver original
  1. Imports System.Data.SqlClient
Luego en el evento Click de tu boton guardar
Código vb:
Ver original
  1. 'En caso de errores usamos try catch
  2.        Try
  3.  
  4.             'Para la cadena de conexion te guias de este enlace http://www.connectionstrings.com/sql-server-2008
  5.            Using conexion As New SqlConnection("Data Source=INSTANCIA_DE_TU_BD;Initial Catalog=TU_BD;User ID=TU_USUARIO;Password=TU_PASSWORD")
  6.  
  7.                 'Recorremos el Datagridview
  8.                For Each fila As DataRowView In grilla.Rows
  9.  
  10.                     'Por ejemplo si tu datagridview posee 3 columnas, tendría la siguiente estructura
  11.                    Dim cmd As New SqlCommand("insert into TUTABLA values(@parametro1,@parametro2,@parametro3)", conexion)
  12.                     'El comando recibe los parametros, Columna 1
  13.                    cmd.Parameters.Add("@parametro1", SqlDbType.VarChar, 20).Value = fila.Item(0).ToString()
  14.                     'El comando recibe los parametros, Columna 2
  15.                    cmd.Parameters.Add("@parametro2", SqlDbType.Int).Value = Convert.ToInt32(fila.Item(1).ToString())
  16.                     'El comando recibe los parametros, Columna 3
  17.                    cmd.Parameters.Add("@parametro3", SqlDbType.DateTime).Value = Convert.ToDateTime(fila.Item(2).ToString())
  18.  
  19.                     'Abrimos conexion
  20.                    conexion.Open()
  21.  
  22.                     'Ejecutamos el comando
  23.                    cmd.ExecuteNonQuery()
  24.  
  25.                     'Cerramos conexion
  26.                    conexion.Close()
  27.  
  28.                 Next
  29.  
  30.             End Using
  31.  
  32.         Catch ex As Exception
  33.             'Anunciamos el error
  34.            MessageBox.Show(ex.Message)
  35.         End Try
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 14/08/2012, 16:19
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

eSTE CÓDIGO LO TENGO QUE PEGAR EN UN BOTÓN? O EN UN DATAGRID O EN EL MISMO FORM. DISCULPA LAS PREGUNTAS PERO SOY NUEVO EN ESTE LENGUAJE. Y SI ESTOY USANDO EL vb.NET

mUCHAS GRACIAS POR RESPONDER
SALUDOS DE PERÚ
  #4 (permalink)  
Antiguo 14/08/2012, 16:46
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Hola ggsradas creo que no leiste detalladamente mi respuesta :
Cita:
Luego en el evento Click de tu boton guardar ...
Ahí te lo dice claramente. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 14/08/2012, 17:01
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Tienes mucha razón, con el afán de resolver mi problema dirigí mi mirada sólo a los códigos. Muchas gracias. voy a probarlo y les comento!
  #6 (permalink)  
Antiguo 14/08/2012, 17:03
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Si te salta alguna excepción de error por favor nos los haces saber. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 15/08/2012, 12:52
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Como pasar datos de un datagridview a una base de datos sql

En caso de que en dicho grid este por ejemplo todo el detalle de un pedido, donde se necesita que se ejecute todo o en caso de haber un error no se ejcute nada (TRANSACCION).

Se crearia un comando con la instruccion START TRANSACTION antes de entrar al bucle For Each?
  #8 (permalink)  
Antiguo 15/08/2012, 13:21
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Si guardaras tanto el Pedido como el Detalle si seria recomentable utilizar una Transaccion que controlara tanto el Pedido como el Detalle, por lo tanto deberias iniciar la transaccion antes de insertar el pedido.
__________________
http://ka0stj.wordpress.com/
  #9 (permalink)  
Antiguo 16/08/2012, 18:10
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Hola de nuevo, he probado el codigo que me mandaste y bueno, logro que los datos se visualicen en el gridview pero cuando hago clic en el boton cargar (guardar) me sale el siguiente error:

[COLOR="rgb(160, 82, 45)"]NO se a que se deba. llevo 3 semanas tratando de lograrlo pero aun no puedoo!!
muchas gracias por tu tiempo [/COLOR]

Cita:
Iniciado por Aquaventus Ver Mensaje
Hola ggsradas, te explico en el siguiente codigo un ejemplo para que te guies. Como no indicaste con que lenguaje estas trabajando, te lo deje en VB.NET :

Primero importa la siguiente librería
Código vb:
Ver original
  1. Imports System.Data.SqlClient
Luego en el evento Click de tu boton guardar
Código vb:
Ver original
  1. 'En caso de errores usamos try catch
  2.        Try
  3.  
  4.             'Para la cadena de conexion te guias de este enlace http://www.connectionstrings.com/sql-server-2008
  5.            Using conexion As New SqlConnection("Data Source=INSTANCIA_DE_TU_BD;Initial Catalog=TU_BD;User ID=TU_USUARIO;Password=TU_PASSWORD")
  6.  
  7.                 'Recorremos el Datagridview
  8.                For Each fila As DataRowView In grilla.Rows
  9.  
  10.                     'Por ejemplo si tu datagridview posee 3 columnas, tendría la siguiente estructura
  11.                    Dim cmd As New SqlCommand("insert into TUTABLA values(@parametro1,@parametro2,@parametro3)", conexion)
  12.                     'El comando recibe los parametros, Columna 1
  13.                    cmd.Parameters.Add("@parametro1", SqlDbType.VarChar, 20).Value = fila.Item(0).ToString()
  14.                     'El comando recibe los parametros, Columna 2
  15.                    cmd.Parameters.Add("@parametro2", SqlDbType.Int).Value = Convert.ToInt32(fila.Item(1).ToString())
  16.                     'El comando recibe los parametros, Columna 3
  17.                    cmd.Parameters.Add("@parametro3", SqlDbType.DateTime).Value = Convert.ToDateTime(fila.Item(2).ToString())
  18.  
  19.                     'Abrimos conexion
  20.                    conexion.Open()
  21.  
  22.                     'Ejecutamos el comando
  23.                    cmd.ExecuteNonQuery()
  24.  
  25.                     'Cerramos conexion
  26.                    conexion.Close()
  27.  
  28.                 Next
  29.  
  30.             End Using
  31.  
  32.         Catch ex As Exception
  33.             'Anunciamos el error
  34.            MessageBox.Show(ex.Message)
  35.         End Try
Saludos!.
  #10 (permalink)  
Antiguo 16/08/2012, 20:32
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Prueba algo así.

Código vb.net:
Ver original
  1. If dataGridView1.Rows.Count = 0 Then
  2.         Return
  3.     End If
  4.  
  5.  
  6.     Using conn As New SqlConnection("Data Source= ServidorSQL; Initial Catalog=BaseDatos; Integrated Security=SSPI;")
  7.         conn.Open()
  8.      
  9.         Dim query As String = "INSERT INTO NombreTabla (id, nombre, apellido) VALUES (@id, @nombre, @apellido)"
  10.         Dim cmd As New SqlCommand(query, conn)
  11.          
  12.         For Each row As DataGridViewRow In dataGridView1.Rows
  13.  
  14.             cmd.Parameters.Clear()
  15.          
  16.             cmd.Parameters.AddWithValue("@id", Convert.ToInt32(row.Cells("Id").Value))
  17.             cmd.Parameters.AddWithValue("@nombre", Convert.ToString(row.Cells("Nombre").Value))
  18.             cmd.Parameters.AddWithValue("@apellido", Convert.ToString(row.Cells("Apellido").Value))
  19.             cmd.ExecuteNonQuery()
  20.         Next
  21.     End Using

El código iría en el evento del botón guardar, y tendrias que acomodar la query del insert a la bd con tus datos.

Saludos.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres

Última edición por cristiantorres; 16/08/2012 a las 20:41
  #11 (permalink)  
Antiguo 17/08/2012, 10:42
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

HOLA, NUEVAMENTE POR AQUI. :/ VEO QUE EL CODIGO QUE ME HAS PROPORCIONADO ESTÁ MAS CLARO Y TE LO AGRADEZCO MUCHO. SIN EMBARGO AHORA RESULTA OTRO MENSAJE CUANDO HAGO CLIC EN EL BOTON GUARDAR. ES EL SIGUIENTE:



COMO PUEDES OBSERVAR ME DICE ERROR DE INICIO DE SESION, QUE IMPLCARIA EL USO DE UN USUARIO Y CONTRASEÑA, SIN EMABRGO NO HE PUESTO NI USUARIO NI CONTRASEÑA AL MOMENTO DE CREAR LA BD.

INTENTÉ PONERLE OTRO TIPO DE DATA SOURCE Y ME SALIÓ EL SIGUIENTE ERROR:




MUCHAS GRACIAS DE ANTEMANO Y DISCULPA POR LAS MOLESTIAS.







Cita:
Iniciado por cristiantorres Ver Mensaje
Prueba algo así.

Código vb.net:
Ver original
  1. If dataGridView1.Rows.Count = 0 Then
  2.         Return
  3.     End If
  4.  
  5.  
  6.     Using conn As New SqlConnection("Data Source= ServidorSQL; Initial Catalog=BaseDatos; Integrated Security=SSPI;")
  7.         conn.Open()
  8.      
  9.         Dim query As String = "INSERT INTO NombreTabla (id, nombre, apellido) VALUES (@id, @nombre, @apellido)"
  10.         Dim cmd As New SqlCommand(query, conn)
  11.          
  12.         For Each row As DataGridViewRow In dataGridView1.Rows
  13.  
  14.             cmd.Parameters.Clear()
  15.          
  16.             cmd.Parameters.AddWithValue("@id", Convert.ToInt32(row.Cells("Id").Value))
  17.             cmd.Parameters.AddWithValue("@nombre", Convert.ToString(row.Cells("Nombre").Value))
  18.             cmd.Parameters.AddWithValue("@apellido", Convert.ToString(row.Cells("Apellido").Value))
  19.             cmd.ExecuteNonQuery()
  20.         Next
  21.     End Using

El código iría en el evento del botón guardar, y tendrias que acomodar la query del insert a la bd con tus datos.

Saludos.
  #12 (permalink)  
Antiguo 17/08/2012, 10:53
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Cita:
Iniciado por ggsradas Ver Mensaje
HOLA, NUEVAMENTE POR AQUI. :/ VEO QUE EL CODIGO QUE ME HAS PROPORCIONADO ESTÁ MAS CLARO Y TE LO AGRADEZCO MUCHO. SIN EMBARGO AHORA RESULTA OTRO MENSAJE CUANDO HAGO CLIC EN EL BOTON GUARDAR. ES EL SIGUIENTE:



COMO PUEDES OBSERVAR ME DICE ERROR DE INICIO DE SESION, QUE IMPLCARIA EL USO DE UN USUARIO Y CONTRASEÑA, SIN EMABRGO NO HE PUESTO NI USUARIO NI CONTRASEÑA AL MOMENTO DE CREAR LA BD.

INTENTÉ PONERLE OTRO TIPO DE DATA SOURCE Y ME SALIÓ EL SIGUIENTE ERROR:




MUCHAS GRACIAS DE ANTEMANO Y DISCULPA POR LAS MOLESTIAS.
No estoy seguro que si para usar base de datos de tipo sdf se usa el proveedor SqLConnection trata de conectarte mejor probando el SqlCeConnection
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #13 (permalink)  
Antiguo 17/08/2012, 11:03
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Bueno el error esta claro el problema es que no se conecta a tu bd.

Estas usando una bd Sql Compact porque veo que usas extensión .sdf?

Porque si usas sql server tendría que ser .mdf
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #14 (permalink)  
Antiguo 17/08/2012, 11:33
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

hola! quisiera creer que estoy más cerca de conseguirlo pues me salió el siguiente mensaje.



entonces ahora lo que debo conseguir es llegar a esa funcion: "IDENTITY_INSERT"
ESPERO ME PUEDAS AYUDAR. TE LO AGRADECERÍA MUCHO. :/

Cita:
Iniciado por cristiantorres Ver Mensaje
Bueno el error esta claro el problema es que no se conecta a tu bd.

Estas usando una bd Sql Compact porque veo que usas extensión .sdf?

Porque si usas sql server tendría que ser .mdf
  #15 (permalink)  
Antiguo 17/08/2012, 11:38
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Cita:
Iniciado por ggsradas Ver Mensaje
hola! quisiera creer que estoy más cerca de conseguirlo pues me salió el siguiente mensaje.



entonces ahora lo que debo conseguir es llegar a esa funcion: "IDENTITY_INSERT"
ESPERO ME PUEDAS AYUDAR. TE LO AGRADECERÍA MUCHO. :/
Pero el error esta claro no es tema de programacion lo que esta diciendo es que tu tienes en tu tabla una columna de tipo IDENTITY y las columnas de tipo IDENTITY no pueden ser pasadas como parametros en un INSERT sino debes excluirlas ya que estas se generan automaticamente por eso te sale ese error
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #16 (permalink)  
Antiguo 17/08/2012, 11:45
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Como lo dice Dradi7 las columnas identity o autoincrementables no tienes que insertarlas ya que ellas generan su propio valor automaticamente.

Me imagino que seria el campo id de tu tabla, entonces este quilato de la query del insert y también quita el código de la columna del datagrid de ese campo.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #17 (permalink)  
Antiguo 17/08/2012, 11:48
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Bueno aunque si quieres insertar el ID en la columna IDENTITY aunque no es recomendable puedes usar la siguiente sentencia
Código SQL:
Ver original
  1. SET IDENTITY_INSERT dbo.tutabla ON
  2. INSERT INTO dbo.tutabla VALUES(@ID,@CAMPO1,@CAMPO2,@ESTADO)
  3. SET IDENTITY_INSERT dbo.tutabla OFF
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #18 (permalink)  
Antiguo 17/08/2012, 11:55
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Si acabo de comprender lo que me dices. supongo que es porque tengo una columna autonumerica y eso se establece automaticamente. algo por alli es la cosa. entonces he intentado eliminar algunos parametros y ha quedado asi.


Dim query As String = "INSERT INTO anexoss (nombre, cargo, area, anexo) VALUES (@nombre, @cargo, @area, @anexo)"

he eliminado el id_anexo y el @id_anexo. Esto ha hecho que ya no me genere ningun error. sin embargo cuando cierro la depuracion y consulto mi tabla para ver si los datos se han ingresado. la tabla me muestra las columnas en NULL. el codigo modificado al final ha quedado asi:

Código vb:
Ver original
  1. If DataGridView1.Rows.Count = 0 Then
  2.             Return
  3.         End If
  4.  
  5.  
  6.         Using conn As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\nex.mdf; Integrated Security=SSPI;")
  7.             conn.Open()
  8.  
  9.             Dim query As String = "INSERT INTO anexoss (nombre, cargo, area, anexo) VALUES (@nombre, @cargo, @area, @anexo)"
  10.             Dim cmd As New SqlCommand(query, conn)
  11.  
  12.             For Each row As DataGridViewRow In DataGridView1.Rows
  13.  
  14.                 cmd.Parameters.Clear()
  15.                 cmd.Parameters.AddWithValue("@id_anexo", Convert.ToInt32(row.Cells("Id_anexo").Value))
  16.                 cmd.Parameters.AddWithValue("@nombre", Convert.ToString(row.Cells("Nombre").Value))
  17.                 cmd.Parameters.AddWithValue("@cargo", Convert.ToString(row.Cells("Cargo").Value))
  18.                 cmd.Parameters.AddWithValue("@area", Convert.ToString(row.Cells("Area").Value))
  19.                 cmd.Parameters.AddWithValue("@anexo", Convert.ToString(row.Cells("Anexo").Value))
  20.                 cmd.ExecuteNonQuery()
  21.             Next

MUCHAS GRACIAS POR TUS RESPUESTAS.

Cita:
Iniciado por Dradi7 Ver Mensaje
Pero el error esta claro no es tema de programacion lo que esta diciendo es que tu tienes en tu tabla una columna de tipo IDENTITY y las columnas de tipo IDENTITY no pueden ser pasadas como parametros en un INSERT sino debes excluirlas ya que estas se generan automaticamente por eso te sale ese error
  #19 (permalink)  
Antiguo 17/08/2012, 11:58
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Cita:
Iniciado por ggsradas Ver Mensaje
Si acabo de comprender lo que me dices. supongo que es porque tengo una columna autonumerica y eso se establece automaticamente. algo por alli es la cosa. entonces he intentado eliminar algunos parametros y ha quedado asi.


Dim query As String = "INSERT INTO anexoss (nombre, cargo, area, anexo) VALUES (@nombre, @cargo, @area, @anexo)"

he eliminado el id_anexo y el @id_anexo. Esto ha hecho que ya no me genere ningun error. sin embargo cuando cierro la depuracion y consulto mi tabla para ver si los datos se han ingresado. la tabla me muestra las columnas en NULL. el codigo modificado al final ha quedado asi:

Código vb:
Ver original
  1. If DataGridView1.Rows.Count = 0 Then
  2.             Return
  3.         End If
  4.  
  5.  
  6.         Using conn As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\nex.mdf; Integrated Security=SSPI;")
  7.             conn.Open()
  8.  
  9.             Dim query As String = "INSERT INTO anexoss (nombre, cargo, area, anexo) VALUES (@nombre, @cargo, @area, @anexo)"
  10.             Dim cmd As New SqlCommand(query, conn)
  11.  
  12.             For Each row As DataGridViewRow In DataGridView1.Rows
  13.  
  14.                 cmd.Parameters.Clear()
  15.                 cmd.Parameters.AddWithValue("@id_anexo", Convert.ToInt32(row.Cells("Id_anexo").Value))
  16.                 cmd.Parameters.AddWithValue("@nombre", Convert.ToString(row.Cells("Nombre").Value))
  17.                 cmd.Parameters.AddWithValue("@cargo", Convert.ToString(row.Cells("Cargo").Value))
  18.                 cmd.Parameters.AddWithValue("@area", Convert.ToString(row.Cells("Area").Value))
  19.                 cmd.Parameters.AddWithValue("@anexo", Convert.ToString(row.Cells("Anexo").Value))
  20.                 cmd.ExecuteNonQuery()
  21.             Next

MUCHAS GRACIAS POR TUS RESPUESTAS.
Lo que sucede creo porque no te inserta es que estas pasando como parametro esto

cmd.Parameters.AddWithValue("@id_anexo", Convert.ToInt32(row.Cells("Id_anexo").Value)) y como no existe no lo inserta y genera un error interno trata de sacar esta linea y verifica si te inserta o no
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #20 (permalink)  
Antiguo 17/08/2012, 12:00
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Pero tambien tendrias que quitar el parámetro que le envías con la columna del datagrid.
Código vb.net:
Ver original
  1. cmd.Parameters.AddWithValue("@id_anexo", Convert.ToInt32(row.Cells("Id_anexo").Value))

También Pon un mensaje para saber si se inserto el registro.
Código vb.net:
Ver original
  1. Try
  2.        cmd.ExecuteNonQuery()
  3.         MessageBox.Show("Registro Ingresado con Exito...")
  4. Catch ex As Exception
  5.          MessageBox.Show(ex.ToString())
  6. End Try
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #21 (permalink)  
Antiguo 17/08/2012, 18:16
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

BUENO PARECE QUE EL CODIGO POR FIN FUNCIONÓ, INCLUSO ME SALIÓ ESTE MENSAJE:



sIN EMBARGO, NO LOGRO INSERTAR LOS DATOS A LA TABLA DE MI BASE DE DATOS :s INCLUSO HICE LA PUBLICACIÓN DE MI PROYECTO Y ME SALIÓ UN ERROR DICIENDO:

Error al intentar adjuntar una base de datos noMbrada automaticamente para el archivo <..../base.mdf> ya existe una base de datos con el mismo nombre o se encuentra en un recurso compartido UNC.


UNA VEZ MÁS ESPERO QUE ME PUEDAN AYUDAR CON ESTE ULTIMO INCONVENIENTE. DE ANTEMANO MUCHAS GRACIAS POR SU TIEMPO.


Cita:
Iniciado por cristiantorres Ver Mensaje
Pero tambien tendrias que quitar el parámetro que le envías con la columna del datagrid.
Código vb.net:
Ver original
  1. cmd.Parameters.AddWithValue("@id_anexo", Convert.ToInt32(row.Cells("Id_anexo").Value))

También Pon un mensaje para saber si se inserto el registro.
Código vb.net:
Ver original
  1. Try
  2.        cmd.ExecuteNonQuery()
  3.         MessageBox.Show("Registro Ingresado con Exito...")
  4. Catch ex As Exception
  5.          MessageBox.Show(ex.ToString())
  6. End Try
  #22 (permalink)  
Antiguo 17/08/2012, 18:55
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Pues bien. en app.config del explorador de soluciones de Visual Basic cambié en conectionstring: User Instance=False porque estaba en True y
1. le di al botoncito play. cargue el excel en el datagrid,
2. luego grabé, me salió REGISTRO INGRESADO CON EXITO. y
3. le di clic en un tercer boton que agregué para abrir un segundo formulario que muestra un datagrid con los valores recientemente añadidos. hasta alli todo ok!

ahora bien, lo que hice fue publicar mi proyecto y una vez instalado, segui los mismos pasos que mencioné arriba solo que en el tercer paso en vez de abrirse el segundo formulario me sale lo siguiente.



:/ ya ahora a qué se deberá esto.
  #23 (permalink)  
Antiguo 17/08/2012, 19:43
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Como pasar datos de un datagridview a una base de datos sql

El problema puede ser que según veo la cadena de conexión has agregado la bd al proyecto.
Código vb.net:
Ver original
  1. "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\nex.mdf; Integrated Security=SSPI;"

Y ademas de agregarla en el proyecto la tienes en el servidor sql server. por eso te dice que la bd ya existe.

cambia la cadena de conexion y borra la bd del proyecto y solo dejala en el servidro sql.
Código vb.net:
Ver original
  1. "Data Source= .\SQLEXPRESS; Initial Catalog=nex.mdf; Integrated Security=SSPI;"
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #24 (permalink)  
Antiguo 18/08/2012, 09:38
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Entiendo lo que me dices, sin embargo no comprendo muy bien COMO hacer los pasos que me indicas
1. ya cambié la cadena de conexion (al cambiar la cadena de conexion también debo cambiarla en el APP.CONFIG???).
2. No se como borrar la bd del proyecto (la borro desde el explorador de soluciones junto con su DATASET.XSD? o desde la acrpeta en el explorador de windows?)
3. y como es posible dejarla en el servidor sql.

disculpa las preguntas pero recien llevo unas semanas comprendiendo el lenguaje VB.NET. de verdad agradezco tu tiempo. saludos!
  #25 (permalink)  
Antiguo 18/08/2012, 10:14
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Cita:
Iniciado por ggsradas Ver Mensaje
Entiendo lo que me dices, sin embargo no comprendo muy bien COMO hacer los pasos que me indicas
1. ya cambié la cadena de conexion (al cambiar la cadena de conexion también debo cambiarla en el APP.CONFIG???).
2. No se como borrar la bd del proyecto (la borro desde el explorador de soluciones junto con su DATASET.XSD? o desde la acrpeta en el explorador de windows?)
3. y como es posible dejarla en el servidor sql.

disculpa las preguntas pero recien llevo unas semanas comprendiendo el lenguaje VB.NET. de verdad agradezco tu tiempo. saludos!
1- No te entiendo osea que tienes la cadena de conexión en tu app.config y también la tienes en tu código, esto no es necesario ya que si la defines en tu app.config no necesitas tenerla también en tu código lo que se hace es recuperar la cadena de conexión de tu app.config desde el código.

2- Estas usando dataset? borrala de tu proyecto desde el explorador de soluciones del vs aunque no es necesario que la borres con solo que cambies la cadena de conexión basta.

3- La tienes que haber adjuntado al el sql server, es decir cuando abres el sql server te aparece la bd que estas usando en las bd del sistema?
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #26 (permalink)  
Antiguo 21/08/2012, 08:35
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Hola, disculpen la demora en contestar, pero tuve que salir de la ciudad por un par de días. Pues bien, leí tu respuesta cristiantorres y me ha servido muchisimo. gracias.
He logrado hacer lo que me dijiste y he logrado al fin guardar los datos del excel en la tabla sql. Sin embargo te consulto esto:
he colocado en el codigo VB lo siguiente:
Código vb:
Ver original
  1. Using conn As New SqlConnection("Data Source=hp-gustavo;Initial Catalog=anexofinal;Pooling=False;Integrated Security=SSPI;User Instance=False")
  2.             conn.Open()

pero es correcto haber puesto "data source = hp-gustavo"???
Es decir, esto funciona en mi ordenador, pero qué es lo que tendría que poner en data source si quisiera instalar la aplicación en otro ordenador que no esté en mi red.
Cabe destacar que la otra computadora cuenta con los requerimientos mínimos como sql server (ya que anteriormente se ha instalado otra aplicación sencilla y se instalaron los requisitos previos)

Entonces, qué tendría que poner en data source para que corra en otra PC que no sea la de desarrollo de la aplicación??


Gracias nuevamente.


Cita:
Iniciado por cristiantorres Ver Mensaje
1- No te entiendo osea que tienes la cadena de conexión en tu app.config y también la tienes en tu código, esto no es necesario ya que si la defines en tu app.config no necesitas tenerla también en tu código lo que se hace es recuperar la cadena de conexión de tu app.config desde el código.

2- Estas usando dataset? borrala de tu proyecto desde el explorador de soluciones del vs aunque no es necesario que la borres con solo que cambies la cadena de conexión basta.

3- La tienes que haber adjuntado al el sql server, es decir cuando abres el sql server te aparece la bd que estas usando en las bd del sistema?
  #27 (permalink)  
Antiguo 21/08/2012, 08:44
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Hola ggsradas, si tu aplicación la vas a correr en una máquina cliente que está fuera de LAN, solo tiene que ir la IP Pública de la máquina donde está alojada tu servidor SQL, pero para ello tu BD tiene que estar habilitada para conexiones externas.
Ahora si está de todas formas dentro de lan, tienes que colocarle su ip asignada localmente, pero de igual forma habilitada para conexiones remotas.
Configurar SQL para conexiones remotas
Saludos!.
PDT: Mi cadena de conexion a un servidor con ip publica fuera del trabajo :
Cita:
<add name="cnx" connectionString="Data Source=200.xxx.xxx.xxx;Initial Catalog=MI_BD;User ID=sa;Password=XXXXXXX" providerName="System.Data.SqlClient"/>
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #28 (permalink)  
Antiguo 21/08/2012, 10:25
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Pues si en la pc que vas instalar la aplicacion ya tiene sql server, lo mas fácil que podrías hacer es adjuntar la bd que usas al sql server de la pc donde la vas instalar y cuando instales la aplicacion podes irte a la carpeta donde se instalo y abrís el app.config con el bloc de notas y cambias el datasource podes poner el nombre de la pc o un punto indicando que es localmente.
Código vb.net:
Ver original
  1. Data Source=.

Si es la version express de sql server seria así.
Código vb.net:
Ver original
  1. Data Source=.\SQLEXPRESS

Saludos.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #29 (permalink)  
Antiguo 21/08/2012, 12:03
 
Fecha de Ingreso: agosto-2012
Mensajes: 19
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Gracias, entendí qué es lo que debo hacer, pero me pregunto: si uno utiliza la función publicar desde el mismo Visual studio. el programa te genera una carpeta con un ejecutable, y varias sub carpetas que son los requisitos previos. ahora bien cuando instalas ese ejecutable, no te pide que ingreses la ruta donde deseas instalar sino que te lo instala automáticamente y es dificil saber donde se encuentran los archivos instalados, HAY ALGUNA FORMA DE ENCONTRAR ESE ARCHIVO QUE ME DICES (APP.CONFIG)??

Cita:
Iniciado por cristiantorres Ver Mensaje
Pues si en la pc que vas instalar la aplicacion ya tiene sql server, lo mas fácil que podrías hacer es adjuntar la bd que usas al sql server de la pc donde la vas instalar y cuando instales la aplicacion podes irte a la carpeta donde se instalo y abrís el app.config con el bloc de notas y cambias el datasource podes poner el nombre de la pc o un punto indicando que es localmente.
Código vb.net:
Ver original
  1. Data Source=.

Si es la version express de sql server seria así.
Código vb.net:
Ver original
  1. Data Source=.\SQLEXPRESS

Saludos.
  #30 (permalink)  
Antiguo 21/08/2012, 12:30
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Como pasar datos de un datagridview a una base de datos sql

Cita:
Iniciado por ggsradas Ver Mensaje
Gracias, entendí qué es lo que debo hacer, pero me pregunto: si uno utiliza la función publicar desde el mismo Visual studio. el programa te genera una carpeta con un ejecutable, y varias sub carpetas que son los requisitos previos. ahora bien cuando instalas ese ejecutable, no te pide que ingreses la ruta donde deseas instalar sino que te lo instala automáticamente y es dificil saber donde se encuentran los archivos instalados, HAY ALGUNA FORMA DE ENCONTRAR ESE ARCHIVO QUE ME DICES (APP.CONFIG)??
Y porque no te creas un instalador para la aplicacion desde el vs es facil hacerlo y así cuando la instalas podes elegir en que ruta instalarla.
Crear un instalador para WindowsApplication en Visual Studio paso a paso.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres

Etiquetas: datagridview, excel, vb
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 14:50.