ExecuteScalar

05/11/2004 - 13:58 por fernando | Informe spam
Amigos alguien me puede decir donde esta la falla
este es el programa. :

Private Sub Form1_Load(ByVal sender As System.Object,
ByVale As System.EventArgs) Handles MyBase.Load
conexion.ConnectionString = "server=(local);" & _
"database=midb;uid=sa;pwd=;"
Dim comando As New SqlCommand("select cod_unidad from
unidad where nombre_unidad=@c1", conexion)
comando.Parameters.Add(New SqlParameter("@c1",
SqlDbType.NVarChar))
comando.Parameters("@c1").Value = get_n()
Dim con As Integer
Try
conexion.Open()
con = CType(comando.ExecuteScalar, Integer)
MessageBox.Show("Codigo: " & con)
Finally
conexion.Close()
End Try
End Sub

Public Function get_n() As Integer
Dim com As New SqlCommand("select cod_unidad from unidad"
& _"where nombre_unidad=@w", conexion)
Dim valor As Integer
com.Parameters.Add(New SqlParameter("@w", SqlDbType.NVarChar))
com.Parameters("@w").Value = "jarabe"
Try
conexion.Open()
valor = CType(com.ExecuteScalar, Integer)
Return valor
Finally
conexion.Close()
End Try
End Function


en aca me muestra el error.. :

on = CType(comando.ExecuteScalar, Integer)

este es el error... :

Excepción no controlada del tipo
'System.Data.SqlClient.SqlException' en system.data.dll

Información adicional: Error del sistema.


sera que nose puede pasar como parametro un Escalar, que el
metodo get_n() me devuelve. ? o no se puede utilizar un
metodo como entrada de un parametro .. ?
gracias.

Preguntas similare

Leer las respuestas

#1 Octavio Telis Aynes
05/11/2004 - 18:07 | Informe spam
Mirando bien el código...

Resulta que tu parámetro "@c1" está definido como Varchar y le estás pasando
un Integer que es lo que te devuelve el método get_n(), así pues... no
coinciden los tipos al mometno de ejecutar el método ExecuteEscalar.


Saludos...

Octavio Telis Aynés
www.comunidadpuntonet.org/df/

"fernando" escribió en el mensaje
news:457401c4c337$1f0f4ad0$
Amigos alguien me puede decir donde esta la falla
este es el programa. :

Private Sub Form1_Load(ByVal sender As System.Object,
ByVale As System.EventArgs) Handles MyBase.Load
conexion.ConnectionString = "server=(local);" & _
"database=midb;uid=sa;pwd=;"
Dim comando As New SqlCommand("select cod_unidad from
unidad where nombre_unidad=@c1", conexion)
comando.Parameters.Add(New SqlParameter("@c1",
SqlDbType.NVarChar))
comando.Parameters("@c1").Value = get_n()
Dim con As Integer
Try
conexion.Open()
con = CType(comando.ExecuteScalar, Integer)
MessageBox.Show("Codigo: " & con)
Finally
conexion.Close()
End Try
End Sub

Public Function get_n() As Integer
Dim com As New SqlCommand("select cod_unidad from unidad"
& _"where nombre_unidad=@w", conexion)
Dim valor As Integer
com.Parameters.Add(New SqlParameter("@w", SqlDbType.NVarChar))
com.Parameters("@w").Value = "jarabe"
Try
conexion.Open()
valor = CType(com.ExecuteScalar, Integer)
Return valor
Finally
conexion.Close()
End Try
End Function


en aca me muestra el error.. :

on = CType(comando.ExecuteScalar, Integer)

este es el error... :

Excepción no controlada del tipo
'System.Data.SqlClient.SqlException' en system.data.dll

Información adicional: Error del sistema.


sera que nose puede pasar como parametro un Escalar, que el
metodo get_n() me devuelve. ? o no se puede utilizar un
metodo como entrada de un parametro .. ?
gracias.
Respuesta Responder a este mensaje
#2 Fernando
05/11/2004 - 19:12 | Informe spam
No es por eso nada mas ese fue un error mio de transcripcion . el
error persiste com dije en el Ctype. gracias por el interes.. .)
"Octavio Telis Aynes" escribió en el mensaje
news:#

Mirando bien el código...

Resulta que tu parámetro "@c1" está definido como Varchar y le estás


pasando
un Integer que es lo que te devuelve el método get_n(), así pues... no
coinciden los tipos al mometno de ejecutar el método ExecuteEscalar.


Saludos...

Octavio Telis Aynés
www.comunidadpuntonet.org/df/

Respuesta Responder a este mensaje
#3 Octavio Telis Aynes
05/11/2004 - 19:50 | Informe spam
Bueno... podrías usar entonces, en lugar del CType, el objeto Convert...
algo como esto:

on = Convert.ToInt32(comando.ExecuteScalar())

Ojalá te funcione...

Saludos...

Octavio Telis Aynés
www.comunidadpuntonet.org/df/

"Fernando" escribió en el mensaje
news:%
No es por eso nada mas ese fue un error mio de transcripcion . el
error persiste com dije en el Ctype. gracias por el interes.. .)
"Octavio Telis Aynes" escribió en el mensaje
news:#
>
> Mirando bien el código...
>
> Resulta que tu parámetro "@c1" está definido como Varchar y le estás
pasando
> un Integer que es lo que te devuelve el método get_n(), así pues... no
> coinciden los tipos al mometno de ejecutar el método ExecuteEscalar.
>
>
> Saludos...
>
> Octavio Telis Aynés
> www.comunidadpuntonet.org/df/
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida