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

Utilizar dos insert into en una misma sentencia

Estas en el tema de Utilizar dos insert into en una misma sentencia en el foro de .NET en Foros del Web. Estoy realizando la carga de datos a sql server mediante codigo vb.net, utilizo el metodo get que me cargan los datos a un datagridview y ...
  #1 (permalink)  
Antiguo 24/11/2009, 10:19
 
Fecha de Ingreso: enero-2004
Mensajes: 230
Antigüedad: 20 años, 2 meses
Puntos: 0
Utilizar dos insert into en una misma sentencia

Estoy realizando la carga de datos a sql server mediante codigo vb.net, utilizo el metodo get que me cargan los datos a un datagridview y a partir de este me va almacenado a la base de datos los datos, la consulta que tengo es que tengo varios datos de distintos origenes que debo inlcuir en la misma tabla de la base de datos, para ello es posible utilizar varias veces el INSERT INTO en la misma sentencia?

Dim aCmd As New SqlCommand("INSERT INTO TipoSaldo(dFechaPeriodo,cTipoEntidad,nEntidad,cCue ntaContable,nSaldoCuenta) VALUES ('" & Me.DataGridView1.Rows(i).Cells(0).Value.ToString() & "','" & Me.DataGridView1.Rows(i).Cells(1).Value.ToString() & "','" & Me.DataGridView1.Rows(i).Cells(2).Value.ToString() & "','" & Me.DataGridView1.Rows(i).Cells(3).Value.ToString() & "','" & Me.DataGridView1.Rows(i).Cells(4).Value.ToString() & "')", oSQLConn)

gracias de antemano
  #2 (permalink)  
Antiguo 24/11/2009, 12:30
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Utilizar dos insert into en una misma sentencia

No entendí bien, quieres usar el insert into en la misma variable aCmd, es decir con el mismo SqlCommand?
La respuesta es sí.
Código vb.net:
Ver original
  1. Dim aCmd As New SqlCommand("INSERT INTO (...) Values(...)")
  2. '
  3. '
  4. aCmd.ExecuteNonQuery() 'Primer insert
  5. cmd.CommandText = "Insert Into (...) Values (...)"
  6. aCmd.ExecuteNonQuery() 'segundo insert
Una recomendación, no pases los parámetro de esa forma :| se hace tedioso de leer, prueba usando SqlParameter
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 24/11/2009, 12:42
 
Fecha de Ingreso: enero-2004
Mensajes: 230
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Utilizar dos insert into en una misma sentencia

si es lo que necesito muchas gracias, como uso el sqlparameter ahora cada registro se ira almacenando al final de la misma tabla del sqlserver?

Gracias
  #4 (permalink)  
Antiguo 24/11/2009, 12:49
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Utilizar dos insert into en una misma sentencia

Sí, se insertarán al final de la tabla.
Para usar SqlParameter puedes hacer lo siguiente:
Código vb.net:
Ver original
  1. Dim aCmd As New SqlCommand("INSERT INTO (codigo, nombre) Values(@codigo, @nombre)")
  2. aCmd.parameters.Add("@codigo", SqlDbType.Char, 5).value = Me.DataGridView1.Rows(i).Cells(1).Value.ToString()
  3. aCmd.parameters.Add("@codigo", SqlDbType.VarChar, 100).value = Me.DataGridView1.Rows(i).Cells(2).Value.ToString()
  4. '
  5. 'demás código
  6. '
Haces un insert normal y en los valores en vez de pasarlo directo del datagridview le indicas una variable, que puede ser cualquier nombre, pero siempre con el @ al inicio.
Luego en usas el método Add de la propiedad Parameters, primero indicas el nombre del parámetro, luego el tipo (char, varchar, int, money, etc), la longitud del campo, y por último el valor que contendra.

Espero te ayude, cualquier duda me avisas
__________________
Eduardo Peredo
Wigoin
  #5 (permalink)  
Antiguo 24/11/2009, 13:00
 
Fecha de Ingreso: enero-2004
Mensajes: 230
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Utilizar dos insert into en una misma sentencia

Muchas gracias por la ayuda, mira que ire cambiando de apcoco al sqlparameter ahora cambie la sentencia sql a lo que me indicaste y me quedo asi

aCmd.CommandText = "INSERT INTO TipoSaldo(dFechaPeriodo,CTipoEntidad,nEntidad,Ccue ntaContable,nSaldoCuenta) VALUES('" & Me.DataGridView2.Rows(i).Cells(0).Value.ToString() & "','" & Me.DataGridView2.Rows(i).Cells(1).Value.ToString() & "','" & Me.DataGridView2.Rows(i).Cells(2).Value.ToString() & "','" & Me.DataGridView2.Rows(i).Cells(3).Value.ToString() & "','" & Me.DataGridView2.Rows(i).Cells(4).Value.ToString() & "')", oSQLConn

En la parte del oSQLConn me sale que espera fin de sentencia le cerre con comillas y me dio error que parametro me falta al final

Muchas gracias
  #6 (permalink)  
Antiguo 24/11/2009, 13:09
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Utilizar dos insert into en una misma sentencia

La propiedad CommandText acepta un string, que viene a ser la instrucción SQL, no necesitas indicarle nuevamente la variable oSQLConn que imagino es un SqlConnection.
Código vb.net:
Ver original
  1. aCmd.CommandText = "INSERT INTO TipoSaldo(dFechaPeriodo,CTipoEntidad,nEntidad,Ccue ntaContable,nSaldoCuenta) VALUES('" & Me.DataGridView2.Rows(i).Cells(0).Value.ToString() & "','" & Me.DataGridView2.Rows(i).Cells(1).Value.ToString() & "','" & Me.DataGridView2.Rows(i).Cells(2).Value.ToString() & "','" & Me.DataGridView2.Rows(i).Cells(3).Value.ToString() & "','" & Me.DataGridView2.Rows(i).Cells(4).Value.ToString() & "')"

Saludos.
__________________
Eduardo Peredo
Wigoin
  #7 (permalink)  
Antiguo 25/11/2009, 11:04
 
Fecha de Ingreso: enero-2004
Mensajes: 230
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Utilizar dos insert into en una misma sentencia

Muchas gracias me funciono a la perfeccion

:)
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 09:57.