border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 15-08-2007, 15:14:54
Buena Participación en el Foro
 
Registrado: ene 2007
Posts: 65
lopezbaires Valoración +2
Predeterminado Problemas con unos Sqlparameters

Tengo una base de datos hecha en sql 2005, la tabla que estoy usando tiene 20 campos, mi problema es al crear el commandtext del update en sqlcommand, hago el commandtext para actualizar usando el Buildcommand, como son 20 campos debe crear 40 sqlparameters (20 para el set y 20 para el where)
pero se da situacion de que solo me crea 38 sqlparameters (20 para el set y 18 para el where).

¿tienen algun limite los sqlparameters en un sqlcommand o estoy haciendo algo mal?

Ejemplo

El buildcommand me los crea asi:

update tabla set campo1=@campo1, campo2=@campo2, ...., campo20=@campo20 where campo1=@p1, campo2=@p2, ...., campo38=@p38

pero yo quiero que me lo cree asi

update tabla set campo1=@campo1, campo2=@campo2, ...., campo20=@campo20 where campo1=@p1, campo2=@p2, ...., campo18=@p18, campo19=@p19, campo20=@p20

espero haber explicado bien mi problema.
Responder Con Cita
  #2 (permalink)  
Antiguo 22-08-2007, 08:16:35
Un Nuevo Amigo
 
Registrado: ago 2006
Posts: 7
gutiory Valoración +2
Predeterminado

No tengo mucha experiencia en el tema, pero yo no usaría el buildcommand. Intenta escribir la sentencia SQL a mano. Lo único que tienes que tener cuidado es en que los nombres de los campos en la base de datos correspondan con los que tu escribes. (Si tu tabla tiene 20 campos es muy raro que uses 38 parámetros).
Espero haberte ayudado.
Un saludo.
Responder Con Cita
  #3 (permalink)  
Antiguo 29-08-2007, 15:00:22
Un Nuevo Amigo
 
Registrado: dic 2006
Posts: 3
hackdomi Valoración +2
Contactar con hackdomi a través de MSN
Predeterminado

Yo te recomiendo que hagas un procedimiento almacenado y los parametros se los envies a el.

Este es un ejemplo como yo lo uso:

Dim myTrans As SqlTransaction
Dim cnn As New LayerData
cnn.Cn.Open()
myTrans = cnn.Cn.BeginTransaction()
Try
'Comando para Grabar la Cabecera de la Toma de Inventario
Dim command1 As SqlCommand = New SqlCommand("DBA_SAVE_CUSTOMER", cnn.Cn)
command1.CommandType = CommandType.StoredProcedure
command1.Parameters.Add(New SqlParameter("@Customerid", Me.txtId.Text))
command1.Parameters.Add(New SqlParameter("@CustomerName", Me.txtName.Text))
command1.Parameters.Add(New SqlParameter("@CustomerContact", Me.txtContact.Text))
command1.Parameters.Add(New SqlParameter("@CustomerAddress", Me.txtAddress.Text))
command1.Parameters.Add(New SqlParameter("@CustomerCity", Me.txtCity.Text))
command1.Parameters.Add(New SqlParameter("@CustomerPhone", Me.txtPhone.Text))
command1.Parameters.Add(New SqlParameter("@CustomerMovil", Me.txtMovil.Text))
command1.Parameters.Add(New SqlParameter("@CustomerFax", Me.txtFax.Text))
command1.Parameters.Add(New SqlParameter("@CustomerMail", Me.txtMail.Text))
command1.Parameters.Add(New SqlParameter("@CustomerCategoryId", CInt(Me.txtCategoryId.Text)))
command1.Parameters.Add(New SqlParameter("@CustomerTypeId", CInt(Me.txtTypeId.Text)))
command1.Parameters.Add(New SqlParameter("@CustomerBalance", CDec(Me.txtBalance.Text)))
command1.Parameters.Add(New SqlParameter("@CustomerActive", Me.cbACtive.Checked))
command1.Transaction = myTrans
command1.ExecuteNonQuery()
myTrans.Commit()
Catch ex As Exception
myTrans.Rollback()
MsgBox(ex.Message)
Throw
Finally
cnn.Cn.Close()
MsgBox("Datos Guardados Correctamente")
End Try

Create el procedimiento almacenado y utiliza esata sentencia te recomiendo es mas facil y actualiza mas rapido.

Att.Domingo
__________________
Tanto el Tiempo como la Vida es Bella no la desperdicies.
Responder Con Cita
  #4 (permalink)  
Antiguo 29-08-2007, 15:06:18
Un Nuevo Amigo
 
Registrado: dic 2006
Posts: 3
hackdomi Valoración +2
Contactar con hackdomi a través de MSN
Predeterminado

Sino entiendes el codigo entonces escribeme y yo te explico paso a paso como trabaja y te envio el procedimiento almacenado que realiza la actualizacion de los registros

Att. Domingo Sanchez

Nota: mi email es "dsanchez@brugal.com.do"

si quieres te puedo enviar una aplicacion de ejemplo.
__________________
Tanto el Tiempo como la Vida es Bella no la desperdicies.
Responder Con Cita
  #5 (permalink)  
Antiguo 05-09-2007, 23:10:09
Buena Participación en el Foro
 
Registrado: ene 2007
Posts: 65
lopezbaires Valoración +2
Predeterminado Re: Problemas con unos Sqlparameters

Cita:
Empezado por hackdomi
Sino entiendes el codigo entonces escribeme y yo te explico paso a paso como trabaja y te envio el procedimiento almacenado que realiza la actualizacion de los registros

Att. Domingo Sanchez

Nota: mi email es "dsanchez@brugal.com.do"

si quieres te puedo enviar una aplicacion de ejemplo.
Ok ya resolvi el problema tuve que crear el query sin el BuildCommand, el ejemplo que tu me das esta buenisimo y realmente nunca habia visto que se ejecutaran de esa forma un procedimiento almacenado, el problema era tambien que yo ocupo una clase que me crea automaticamente los querys para insertar, borrar y actualizar, con solo recibir el nombre de la tabla que esta creada en la BD, claro que string de la conexion a la BD yo lo pongo, pero esta clase me funciona para cualquier tabla en la BD no solo para una tabla especificamente, por eso tu ejemplo no es muy compatible.

Pero me va a servir para ejecutar los procedimientos almacenados.
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Urgente...limpiar unos listbox mediante un command ricvar15 Visual Basic 6.00 3 04-12-2006 16:10:54
Problemas con el foco en unos botones.... Kenzdvil Visual Basic.NET 2003 & 2005 1 29-10-2006 20:18:24
mensaje que se muestre por unos segundo crisjavi Visual Basic 6.00 3 25-07-2005 17:00:21
Detener el codigo unos segundos kaskybrime Visual Basic 6.00 1 26-10-2004 12:32:02
Seleccionar Items en unos Listbox chlsaul Visual Basic.NET 2003 & 2005 4 17-09-2004 01:00:00


La franja horaria es GMT. Ahora son las 20:48:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right