Aquí un pequeño ejemplo de como pasar parámetros null con C# a un stored procedure en sql server:
public DataTable Consulta(int? id) { string[] NomParam = new string[] { "id"}; object[] arg = new object[] { id == null ? System.Data.SqlTypes.SqlInt32.Null : Int32.Parse(id.ToString()) }; return conn.execSP("spConsula", arg, NomParam); }
El parámetro debe declararse con el simbolo “?” que le indica al compilador que puede venir un null en vez de un int. Luego, el tipo de datos es convertido a su equivalente nulo para sql server, de manera que interprete que es un parámetro con valor null y no que falta un parámetro.