I think what I'd do in this situation is the following:
1. Just use the first word of the company name (or the first and second words if the first word is 'The') to search for the company in the database.
2. Assuming the contact name will be something like 'George Washington' or 'Ulysses S Grant', I'd just search for the last word (i.e. the surname) in the database.
3. I'd ignore case throughout.
So the LINQ to SQL query and preliminary code would then be on the following lines:
// it's assumed that the variables companyName and contactName contain the full names in // the Excel spreadsheet);
string company = companyName.TrimStart().Split(' ').ToLower();
if (company == 'the') company += " " + companyName.Split(' ').ToLower();
string items = contactName.TrimEnd().Split(' ');
string surname = items[items.Length - 1].ToLower();
var query = from row in tableContext where row.CompanyName.TrimStart().ToLower().StartsWith(company) && row.ContactName.TrimEnd().ToLower().EndsWith(surname) select row;