After I retrieve any Scalar value in the database, It's my job to write code such as this for nullable fields.

cmd.ExecuteScalar() == DBNull.Value ? 0 : (int)cmd.ExecuteScalar()

However I can't stand it since it executes the Executescalar statement two times. This is an extra visit to the server for this site and in support of performance I'd rather not do that.

Can there be in whatever way I'm able to eliminate this extra ExecuteScalar()?

Write yourself extra time way of the sql command.

public static T ExecuteNullableScalar<T>(this SqlCommand cmd)
    where T : struct
    var result = cmd.ExecuteScalar();
    if (result == DBNull.Value) return default(T);
    return (T)result;

Usage becomes:

int value = cmd.ExecuteNullableScalar<int>();

Only use a flexible to cache the end result:

var o = cmd.ExecuteScalar();
return o == DBNull.Value ? 0 : (int)o;
 object o = cmd.ExecuteScalar();
 return (o== DBNull.Value) ? 0 : (int)o;