Obtenga un valor booleano de DataTable
Pregunta
¿Cómo recupero un valor booleano en el conjunto de datos? Estoy usando Visual Studio 2003, estoy intentando lo siguiente, pero no funciona:
//if product inactive, don't display, and redirect to main page
if((dbDataSet.Tables["productGeneral"].Rows[0]["Active"].Equals(0)))
Incluso lo intenté, pero no funcionó:
if((dbDataSet.Tables["productGeneral"].Rows[0]["Active"].toString() == false)
el nombre de las columnas es [" active "], el valor con en la columna es True o False, usando sql server 2000
por favor ayuda
Solución
Necesita lanzar directamente a un bool, y simplemente verifique usando eso.
¿Lo has intentado ?:
if(((bool)dbDataSet.Tables["productGeneral"].Rows[0]["Active"] == false))
Si es un bool, querrás convertir el resultado en un bool directamente.
El primero falla ya que 0 es un Int32, no un booleano. No son comparables en C #, ya que son tipos distintos. El segundo falla ya que ToString () convierte el resultado en una cadena, y está comparando una cadena con un bool, que nuevamente no funcionará.
Otros consejos
Pruebe lo siguiente
if (Convert.ToBoolean(dbDataSet.Tables["productGeneral"].Rows[0]["Active"]) == true)
{}