Problema con campos sin datos

30/06/2004 - 16:09 por Lixus | Informe spam
Sigo teniendo problemas con campos sin datos en la consulta a bases de
datos.

El caso es que tengo diseñado un WebForm para mostrar la información de un
registro de una determinada tabla. La tabla está en una Base de Datos en SQL
Server.

El enlace es a través de un SQLDataSet, con una sencilla consulta "Select *
FROM tblMyTable".

Hasta aquí todo bien, veo el registro seleccionado y puedo moverme registro
a registro con un

Dim dr As DataRow
dr = Me.DataSet1.tblMyTable.DefaultView(position).Row

Siendo position una variable Integer que me permite moverme entre registros.

En el formulario tengo cargados unos controles TextBox en donde puedo ver el
contenido de los campos.

El probleme viene cuando llego a un registro con algún campo sin datos, y el
mensaje de error es:

Detalles de la excepción: System.InvalidCastException: La conversión del
tipo 'DBNull' al tipo 'String' no es válida.

Error de código fuente:
Línea 702: Get
Línea 703: Try
Línea 704: Return
CType(Me(Me.tabletblNameFam.mCommentsColumn),String)
Línea 705: Catch e As InvalidCastException
Línea 706: Throw New StrongTypingException("No se puede
obtener el valor porque es DBNull.", e)

Archivo de origen: c:\inetpub\wwwroot\wtaxa\frame_edition\dsNamefam1.vb
Línea: 704

¿Hay alguna forma de evitar este tipo de errores cuando la apliciación se
encuentre con algún campo vacío en la Base de Datos?, ¿Porqué devuelve un
DBNull en vez de una cadena vacía, si los campos son de texto?.

Hace algo más de un mes hice una consulta pareceida, pero tuve que
ausentarme por unos días y a la vuelta no pude ver ni mi propio mensaje,
desde aquí quisiera dar las gracias a los que contestaran al mensaje, y
pedir perdón por no haber respondido en su momento.

Muchas gracias por todo
Un saludo
 

Leer las respuestas

#1 Franco Figún
30/06/2004 - 18:21 | Informe spam
Creo que hay otra manera, pero este codigo te puede ayudar:

If Not IsDBNull(rec) Then
Dim l1 As Label
l1 = e.Item.FindControl("lblAuthorID")
l1.Text = rec("au_id").ToString()
End If

FF
www.francofigun.com.ar
www.microsofties.com.ar
MSN:
UIN: 314408886
Yahoo MSN:

"Lixus" wrote in message
news:
Sigo teniendo problemas con campos sin datos en la consulta a bases de
datos.

El caso es que tengo diseñado un WebForm para mostrar la información de un
registro de una determinada tabla. La tabla está en una Base de Datos en


SQL
Server.

El enlace es a través de un SQLDataSet, con una sencilla consulta "Select


*
FROM tblMyTable".

Hasta aquí todo bien, veo el registro seleccionado y puedo moverme


registro
a registro con un

Dim dr As DataRow
dr = Me.DataSet1.tblMyTable.DefaultView(position).Row

Siendo position una variable Integer que me permite moverme entre


registros.

En el formulario tengo cargados unos controles TextBox en donde puedo ver


el
contenido de los campos.

El probleme viene cuando llego a un registro con algún campo sin datos, y


el
mensaje de error es:

Detalles de la excepción: System.InvalidCastException: La conversión del
tipo 'DBNull' al tipo 'String' no es válida.

Error de código fuente:
Línea 702: Get
Línea 703: Try
Línea 704: Return
CType(Me(Me.tabletblNameFam.mCommentsColumn),String)
Línea 705: Catch e As InvalidCastException
Línea 706: Throw New StrongTypingException("No se puede
obtener el valor porque es DBNull.", e)

Archivo de origen: c:\inetpub\wwwroot\wtaxa\frame_edition\dsNamefam1.vb
Línea: 704

¿Hay alguna forma de evitar este tipo de errores cuando la apliciación se
encuentre con algún campo vacío en la Base de Datos?, ¿Porqué devuelve un
DBNull en vez de una cadena vacía, si los campos son de texto?.

Hace algo más de un mes hice una consulta pareceida, pero tuve que
ausentarme por unos días y a la vuelta no pude ver ni mi propio mensaje,
desde aquí quisiera dar las gracias a los que contestaran al mensaje, y
pedir perdón por no haber respondido en su momento.

Muchas gracias por todo
Un saludo


Preguntas similares