The error message is telling you that Order is not a valid name at that point. So exactly which table and items are you trying to refer to? If you have a table with the name "Order Details", then you need to use square brackets round it thus:
string str2 = "SELECT Customers.CompanyName, Orders.OrderID, Orders.OrderDate, [Order Details].ProductID, [Order Details].Quantity, [Order Details].UnitPrice FROM (Customers RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID) LEFT JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID WHERE(((Orders.OrderID) = 10255))";
But putting spaces in table names is not the best of ideas.