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:
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


Respuesta Responder a este mensaje
#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:
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
>
>


Respuesta Responder a este mensaje
#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:
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
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida