Datasets VB 2005

07/07/2006 - 02:42 por Super | Informe spam
hola

ya he instalado Visual Estudio 2005 y he convertido mi aplicación, pero en
un dataset que me funciona OK en 2003 ahora tengo lo siguiente

Public Function CreateDataSet(ByVal vValor As String) As DataSet

Dim dtsContratos As DataSet

Dim IsConnecting As Boolean = True

While IsConnecting

Try

Dim scmd As New SqlCommand("SGI_ContratosCabeza", Cnn)

Dim sdaContrato As New SqlDataAdapter(scmd)

Dim ParContrato As New SqlParameter

With ParContrato

.ParameterName = "@NoContrato"

.SqlDbType = SqlDbType.NVarChar

.Value = vValor

End With

With scmd

.Parameters.Add(ParContrato)

.CommandType = CommandType.StoredProcedure

End With

dtsContratos = New DataSet

sdaContrato.Fill(dtsContratos, "SGI_ContratosCabeza")

sdaEntidad = New SqlDataAdapter("SELECT * From Datos_Entidad", Cnn)

Me.sdaEntidad.Fill(dtsContratos, "Datos_Entidad")

IsConnecting = False

DidPreviouslyConnect = True

Catch expSQL As SqlException

MsgBox(expSQL.ToString, MsgBoxStyle.Critical)

End Try

End While

RaiseEvent ConnectionCompleted(True)

Return dtsContratos

End Function

tiene una advertencia y dice textualmente "Variable dtsContratos is used
before it has been assigned a value. A null reference exception could result
at runtime.

Cuando abro el report en 2005 está vacío.



Que cambió, pueden ayudarme con algo ?

Gracias
 

Leer las respuestas

#1 SoftJaén
06/07/2006 - 18:59 | Informe spam
"Super" escribió:

tiene una advertencia y dice textualmente "Variable dtsContratos is used
before it has been assigned a value. A null reference exception could
result at runtime.

Cuando abro el report en 2005 está vacío.

Que cambió, pueden ayudarme con algo ?



Hola:

El cambio con respecto a la versión de Visual Basic 2003, es que ahora, el
editor de Visual Studio muestra una serie de advertencias para ayudarte a
depurar el código.

Por ejemplo, tu función devuelve un objeto «DataSet», pero ello no significa
que siempre devuelva un objeto DataSet válido, porque por cualquier motivo,
también puede devolver el valor predeterminado, es decir, el valor
«Nothing».

Dim dtsContratos As DataSet



Como en la declaración no has llamado al constructor público del objeto
(New), la advertencia que te aparece simplemente te está indicando que la
función puede devolver un valor Nothing. Pero no es un error: es una
advertencia.

Lo puedes solucionar de dos formas:

- llamando expresamente al constructor del objeto DataSet

Dim dtsContratos As New DataSet

- Asignado el valor «Nothing» en la misma declaración

Dim dtsContratos As DataSet = Nothing

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares