Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Error Must declare the variable '@codigo'.) (http://www.forosdelweb.com/f29/error-must-declare-variable-codigo-411768/)

hjavier 24/07/2006 11:45

Error Must declare the variable '@codigo'.)
 
HOla a todos,

Alguien me pudiera ayudar y indicarme que estoy haciendo en este insert que me da ese error.

Error Must declare the variable '@codigo'.)

aqui esta el codigo.

Dim insCon As New SqlConnection("server=localhost;uid=sa;pwd=admin;d atabase=csnet")
Dim insCmd As SqlCommand
Dim insstring As String
Dim codigo As Integer
Dim descr As String

codigo = 6
descr = "Hola2"
insstring = "INSERT INTO categoriausr VALUES(@codigo,@descr);"

insCon.Open()
insCmd = New SqlCommand(insstring, insCon)
insCmd.ExecuteNonQuery()
insCon.Close()

gracias.

Scho 24/07/2006 14:22

Saludos!
No estás declarando los parámetros @codigo y @descr, te estás equivocando con:
Dim codigo As Integer
Dim descr As String
codigo = 6
descr = "Hola2"
Así sólo declaras unas variables pero no parámetros del SQL, prueba con:

Código:

Dim insCon As New SqlConnection("server=localhost;uid=sa;pwd=admin;d atabase=csnet")
Dim insCmd As SqlCommand
Dim insstring As String

insstring = "INSERT INTO categoriausr VALUES(@codigo,@descr);"

insCmd = New SqlCommand(insstring, insCon)

Dim parametro As SqlParameter
parametro = insCmd.Parameters.Add("@codigo", SqlDbType.Int)
parametro.Value = 6
parametro = insCmd.Parameters.Add("@descr", SqlDbType.VarChar, 255)
parametro.Value = "Hola2"


insCon.Open()
insCmd.ExecuteNonQuery()
insCon.Close()


Espero que te sirva. Saludos!

hjavier 24/07/2006 16:34

GRacias mil Scho. Me funciono, ahora quisiera ver si me puedes ayudar con este error que me esta dando, aqui no entiendo la razon. Miralo,

Error String or binary data would be truncated.
The statement has been terminated.)


Dim insCon As New SqlConnection("server=localhost;uid=sa;pwd=admin;d atabase=csnet")

insString = "INSERT INTO tbl_historico_seguimiento VALUES(@auditoria2,@face2,@instruccion2,@medida2,@ codigo2," _
& "@cod_compania2,@tipo_calificacion2,@i2,@dia_notif icacion2,@fecha_notificacion2,@notificado2," _
& "@estado2,@fecha_correcion2,@vencio_ayer2);"


parametro = insCmd.Parameters.Add("@auditoria2", SqlDbType.VarChar, 255)
parametro.Value = auditoria2
parametro = insCmd.Parameters.Add("@face2", SqlDbType.Int)
parametro.Value = face2
parametro = insCmd.Parameters.Add("@instruccion2", SqlDbType.Int)
parametro.Value = instruccion2
parametro = insCmd.Parameters.Add("@medida2", SqlDbType.VarChar, 10)
parametro.Value = medida2
parametro = insCmd.Parameters.Add("@codigo2", SqlDbType.Int)
parametro.Value = codigo2
parametro = insCmd.Parameters.Add("@cod_compania2", SqlDbType.Int)
parametro.Value = cod_compania2
parametro = insCmd.Parameters.Add("@tipo_calificacion2", SqlDbType.Int)
parametro.Value = tipo_calificacion2
parametro = insCmd.Parameters.Add("@i2", SqlDbType.Int)
parametro.Value = i2
parametro = insCmd.Parameters.Add("@dia_notificacion2", SqlDbType.Int)
parametro.Value = i2
parametro = insCmd.Parameters.Add("@fecha_notificacion2", SqlDbType.DateTime)
parametro.Value = fecha_notificacion2
parametro = insCmd.Parameters.Add("@notificado2", SqlDbType.Char)
parametro.Value = notificado2
parametro = insCmd.Parameters.Add("@estado2", SqlDbType.Char)
parametro.Value = estado2
parametro = insCmd.Parameters.Add("@fecha_correcion2", SqlDbType.DateTime)
parametro.Value = fecha_correcion2
parametro = insCmd.Parameters.Add("@vencio_ayer2", SqlDbType.Char)
parametro.Value = vencio_ayer2

insCmd = New SqlCommand(insString, insCon)
insCon.Open()
insCmd.ExecuteNonQuery()
insCon.Close()

gracias.

Scho 25/07/2006 04:43

No se me decirte con seguridad, se me ocurre que, quizá, a algún parámetro SqlDbType.Int (como @face2) le estés pasando una variable double, o que al varchar 10 @medida2 le estés pasando una cadena más larga que 10, o quizá te estés equivocando al declarar @vencio_ayer2 y realmente sea un tipo bit y no un char. No puedo decirte con seguridad pero tiene pinta de ser algo de eso, que algún valor que le estás asignando a un parámetro, "desborde" el tipo datos de ese parámetro.

Un saludo.

hjavier 26/07/2006 07:40

Scho, gracias mil. Tu planteamiento fue correcto, el error estaba en el tipo de datos. He podido resolver.

Gracias mil.

Saludos.


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

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