¿Hay alguna manera de determinar en .NET, para cualquier conjunto arbitrario de resultados de SQL Server, si una columna determinada en el resultado puede contener valores nulos?SqlDataReader averiguar si un campo de datos es anulable
Por ejemplo, si tengo las declaraciones
Select NullableColumn From MyTable
y
Select IsNull(NullableColumn, '5') as NotNullColumn From MyTable
y me da una datareader así:
var cmd = new SqlCommand(statement, connection);
var rdr = cmd.ExecuteReader();
puedo tener una función como esta?
bool ColumnMayHaveNullData(SqlDataReader rdr, int ordinal)
{
//????
}
Quiero que devuelva verdadero para el primer enunciado y falso para el segundo enunciado.
rdr.GetSchemaTable()
no funciona para esto porque devuelve si la columna subyacente puede ser nula, que no es lo que quiero. Hay funciones en datareader que devuelven el tipo SQL subyacente del campo, pero ninguno me parecen decir si puede ser nulo ..
¿Puedo preguntarle por qué quiere saberlo? – tomfanning
@tomfanning Estoy pirateando un ORM. Deseo iniciar sesión cada vez que alguien intente ejecutar una consulta en la que un campo db anulable se correlacione con un tipo de valor que no admite nulos. – dan