que estaba haciendo algo como esto:SqlParameter con el valor predeterminado se establece en 0 no funciona como se esperaba
SqlParameter param = new SqlParameter("@Param", 0) { SqlDbType = SqlDbType.Int };
private void TestParam(SqlParameter param) {
string test = param.Value.ToString(); // Getting NullReferenceException here
}
Pero dejar de recibir la excepción cuando lo pongo de esta manera:
SqlParameter param = new SqlParameter("@Param", SqlDbType.Int) { Value = 0 };
private void TestParam(SqlParameter param) {
string test = param.Value.ToString(); // Everything OK
}
¿Alguien puede decirme por qué SqlParameter supone que 0 es lo mismo que nulo?
Editar: MSDN explica aquí: SqlParameter Constructor
Bien, se explica aquí: http://msdn.microsoft.com/en-us/library/0881fz2y%28v=VS.80%29.aspx Al crear un nuevo SqlParameter con el valor predeterminado "0", necesita convertirlo explícitamente a entero. De lo contrario, se supone que está pasando una enum SqlDbType como el segundo parámetro. – Meryovi