Problemas con Option Strict On

29/03/2005 - 19:52 por gambini | Informe spam
Ayuda, GURUS de VB.NET. Estoy programando con Option
Strict On (la porción del código se muestra abajo).Y en
la instrucción "Comando(ProcedimientoAlmacenado)" (es
decir línea 6), se genera el siguiente error: Option
Strict On disallows implicit conversions
from 'System.Data.IDbCommand'
to 'System.Data.SqlClient.SqlCommand'. ¿Cómo supero este
error?, ¿y otros similares que se generan en otras
funciones, p.ejemplo con Connection, Transaction ?.

CODIGO DE LA FUNCION:

Public Overloads Function Ejecutar( _
ByVal ProcedimientoAlmacenado As String, _
ByVal ParamArray Argumentos() As System.Object) _
As Integer
Dim mCom As System.Data.SqlClient.SqlCommand = _
Comando(ProcedimientoAlmacenado)
Dim Resp As Integer
CargarParametros(mCom, Argumentos)
Resp = mCom.ExecuteNonQuery
Dim oPar As System.Data.SqlClient.SqlParameter
Dim i As Integer
For i = 0 To mCom.Parameters.Count - 1
With mCom.Parameters(i)
If .Direction =
ParameterDirection.InputOutput _
Or .Direction = ParameterDirection.Output
Then
Argumentos.SetValue(.Value, i - 1)
End If
End With
Next
Return Resp
End Function
 

Leer las respuestas

#1 Edgar Contreras
29/03/2005 - 20:14 | Informe spam
El error es muy claro, el problema que tienes es que quieres "vestir de niña
a un niño"...

Con la opción Strict On evitas cualquier tipo de conversión implícita, que a
la larga podrá causarte muchos problemas. La manera de resolver esto es
mediante el uso de las funciones de conversión de tipos, de las cuales
existen varias según el dato a usar:

CDbl, CInt, etc...

Estas trabajan con los tipos "simples".

Para el manejo de objetos puedes usar CType o DirectCast.

Saludos,

Edgar Contreras


[Conectado desde Tijuana, B.C. México]

DISCLAIMER: La información es presentada como es, sin ninguna
responsabilidad, sin garantía alguna y no otorga
derecho alguno.



"gambini" wrote in message
news:071e01c53488$0c47b5f0$
Ayuda, GURUS de VB.NET. Estoy programando con Option
Strict On (la porción del código se muestra abajo).Y en
la instrucción "Comando(ProcedimientoAlmacenado)" (es
decir línea 6), se genera el siguiente error: Option
Strict On disallows implicit conversions
from 'System.Data.IDbCommand'
to 'System.Data.SqlClient.SqlCommand'. ¿Cómo supero este
error?, ¿y otros similares que se generan en otras
funciones, p.ejemplo con Connection, Transaction ?.

CODIGO DE LA FUNCION:

Public Overloads Function Ejecutar( _
ByVal ProcedimientoAlmacenado As String, _
ByVal ParamArray Argumentos() As System.Object) _
As Integer
Dim mCom As System.Data.SqlClient.SqlCommand = _
Comando(ProcedimientoAlmacenado)
Dim Resp As Integer
CargarParametros(mCom, Argumentos)
Resp = mCom.ExecuteNonQuery
Dim oPar As System.Data.SqlClient.SqlParameter
Dim i As Integer
For i = 0 To mCom.Parameters.Count - 1
With mCom.Parameters(i)
If .Direction ParameterDirection.InputOutput _
Or .Direction = ParameterDirection.Output
Then
Argumentos.SetValue(.Value, i - 1)
End If
End With
Next
Return Resp
End Function

Preguntas similares