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.
 

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.

Preguntas similares