Foros del Web » Programación para mayores de 30 ;) » .NET »

Conversion from type 'DBNull' to type 'String' is not valid.

Estas en el tema de Conversion from type 'DBNull' to type 'String' is not valid. en el foro de .NET en Foros del Web. saludos a todos tengo un textbox el cual lleno por medio de un datasource, este es el codigo del datasource ----------- select sum(venta) from sales2 ...
  #1 (permalink)  
Antiguo 27/10/2011, 17:13
 
Fecha de Ingreso: junio-2011
Mensajes: 329
Antigüedad: 12 años, 10 meses
Puntos: 2
Conversion from type 'DBNull' to type 'String' is not valid.

saludos a todos tengo un textbox el cual lleno por medio de un datasource, este es el codigo del datasource
-----------
select sum(venta) from sales2 where sid in (1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,2 1) And type In (2,3) and idate>=@idate
-----------

hago la asignacion y valido si el ds no esta vacio con el sig codigo el valor de @idate lo tomo desde un aspdateedit...si le pongo la fecha directo si trabaja

--------------------------------------------------
Dim vtadiariaacum As Data.DataView = SqlDataSource21.Select(DataSourceSelectArguments.E mpty)
If vtadiariaacum.Table.Rows.Count <= 0 Then
TextBox21.Text = "0"
Else
TextBox21.Text = vtadiariaacum.ToTable.Rows(0)("Column1")
Dim resultadovtaacum As Integer = TextBox21.Text
TextBox21.Text = String.Format("${0:#,#0.00}", resultadovtaacum)
-------------------------------------------------------

y me me marca el sig error:

Conversion from type 'DBNull' to type 'String' is not valid.

se me hace muy raro por que inserte un breakpoint y yo veo q la variable si tiene un valor no es ningun valor nulo

alguna idea..?
  #2 (permalink)  
Antiguo 28/10/2011, 07:46
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Conversion from type 'DBNull' to type 'String' is not valid.

Hola mrprogman, fijate si tiene la propiedad Value o ToString para que se la asignes, porque alli es como si estuvieses referenciando solo a la columna mas no a su valor contenido:

TextBox21.Text = vtadiariaacum.ToTable.Rows(0)("Column1").Value
ó
TextBox21.Text = vtadiariaacum.ToTable.Rows(0)("Column1").ToString
Nos Cuentas. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 28/10/2011, 10:46
 
Fecha de Ingreso: junio-2011
Mensajes: 329
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Conversion from type 'DBNull' to type 'String' is not valid.

gracias por su respuesta me marca lo sig

Conversion from string "" to type 'Integer' is not valid.
Input string was not in a correct format.

TextBox21.Text = vtadiariaacum.ToTable.Rows(0)("Column1").ToString
Line 211: Dim resultadovtaacum As Integer = TextBox21.Text
Line 212: TextBox21.Text = String.Format("${0:#,#0.00}", resultadovtaacum)

y con este codigo

TextBox21.Text = vtadiariaacum.ToTable.Rows(0)("Column1").*Value*

se pone en rojo como si fuera error de sintaxis debajo de VALUE.....

alguna idea de por q pasa esto.?
  #4 (permalink)  
Antiguo 28/10/2011, 11:02
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Conversion from type 'DBNull' to type 'String' is not valid.

cuando se pone en rojo debajo es porque no tiene esa propiedad, pero vamos... con el ToString sí dá, entonces ahora el error que te muestra es que en 1 de sus celdas ahi una vacía y eso no se puede convertir a string, tendrías que hacer una validación.
Código vb:
Ver original
  1. If vtadiariaacum.Table.Rows.Count <= 0 Then
  2.             TextBox21.Text = "0"
  3.         Else
  4.             If vtadiariaacum.ToTable.Rows(0)("Column1").ToString Is DBNull.Value Or vtadiariaacum.ToTable.Rows(0)("Column1").ToString Is String.Empty Then
  5.                 MessageBox.Show("Esta vacio la celda")
  6.                 TextBox21.Text = "0"
  7.             Else
  8.                 TextBox21.Text = vtadiariaacum.ToTable.Rows(0)("Column1")
  9.                 Dim resultadovtaacum As Integer = TextBox21.Text
  10.             End If
  11.         End If
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 28/10/2011, 11:32
 
Fecha de Ingreso: junio-2011
Mensajes: 329
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Conversion from type 'DBNull' to type 'String' is not valid.

pues me marca en 0..el campo, pero eso no puede ser...si yo me meto al ds directo y lo corro veo q tiene un valor...voy a hacer unas pruebas y si descubro algo les comento...saludos y gracias
  #6 (permalink)  
Antiguo 28/10/2011, 11:35
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Conversion from type 'DBNull' to type 'String' is not valid.

verifica bien, se te pudo haber pasado algo. Saludos! ah y te marca cero porque le puse que marque 0 si estaba vacio, eso lo puedes comprobar con el seguimiento de los breakpoints
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 28/10/2011, 20:49
Avatar de jose_d  
Fecha de Ingreso: enero-2003
Ubicación: Cali
Mensajes: 220
Antigüedad: 21 años, 3 meses
Puntos: 4
Respuesta: Conversion from type 'DBNull' to type 'String' is not valid.

Cita:
If vtadiariaacum.ToTable.Rows(0)("Column1").ToString Is DBNull.Value
Hola leyendo esto y si no me equivoco le sobra un .ToString() ya que si haces eso nunca va a ser DBNull deberia de ser sin ese ToString()

espero sirva pues en c# funciona así
__________________
El leer te da el poder de mejorar

Etiquetas: conversion, dbnull, sql, string, textbox, type
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:40.