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.