Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Utilizar dos insert into en una misma sentencia (http://www.forosdelweb.com/f29/utilizar-dos-insert-into-misma-sentencia-756241/)

lizalina 24/11/2009 10:19

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 :-)

eperedo 24/11/2009 12:30

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 :adios:

lizalina 24/11/2009 12:42

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
:-)

eperedo 24/11/2009 12:49

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 :adios:

lizalina 24/11/2009 13:00

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

eperedo 24/11/2009 13:09

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.

lizalina 25/11/2009 11:04

Respuesta: Utilizar dos insert into en una misma sentencia
 
Muchas gracias me funciono a la perfeccion

:)


La zona horaria es GMT -6. Ahora son las 05:42.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.