As mentioned by Chris, you do not need apostrophes for the parametrized version, since you are stating it is an NVarChar type. Although, I have noticed that in your non parametrized version, you are not searching an NVarChar string, as this would be
SQl_Command.CommandText = "SELECT COUNT(ID) As MyCount FROM members WHERE ([Primary Exp] = N'" + exp + "') AND ([Approved] = 'True') OR ([Approved] = 'True') AND ([Secondary Exp] = N'" + exp + "')";
On the other hand, the parametrized version will automatically search using a NVarChar string since this is the type being specified. This could be a reason for the different result sets between the two, depending on how you are saving the data (are you possibly saving it as a VarChar string instead of an NVarChar?), and if the data contains Unicode characters or not.
You may also want to look at the differences in the queries being sent to the database by using SQL Server Profiler
Apologies for posting this as an answer, but I dont have the reputation to post it as a comment :)