This works as long as data comes back. What field name are you passing into strOption? Seems odd to take a UD column to upper case or a regular column name. Something like this below works
string strOption = "Character01";
string _whereClauseUD105A = "Key1 = '1' and Character01 = 'Test12' OR " + strOption + " = 'Test123' ";