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

Preguntas similare

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:
Mostrar la cita
SQL
Mostrar la cita
*
Mostrar la cita
registro
Mostrar la cita
registros.
Mostrar la cita
el
Mostrar la cita
el
Mostrar la cita
#2 Lixus
06/07/2004 - 12:50 | Informe spam
Gracias por la respuesta, probaré este código a ver qué pasa.


"Franco Figún" escribió en el mensaje
news:
Mostrar la cita
un
Mostrar la cita
"Select
Mostrar la cita
ver
Mostrar la cita
y
Mostrar la cita
puede
Mostrar la cita
se
Mostrar la cita
un
Mostrar la cita
#3 Lixus
06/07/2004 - 16:26 | Informe spam
Yo tengo enlazados los controles en un page_databinding() con:
Me.txtNotes1.Text = DataBinder.Eval(dr, "mComments")

porque también quiero editar esos datos.

No sé muy bien dónde utilizar el If para que funcione, ni si luego podré
editar ese campo.


"Franco Figún" escribió en el mensaje
news:
Mostrar la cita
un
Mostrar la cita
"Select
Mostrar la cita
ver
Mostrar la cita
y
Mostrar la cita
puede
Mostrar la cita
se
Mostrar la cita
un
Mostrar la cita
Ads by Google
Search Busqueda sugerida