Poparł Ed Altofer. (Odpowiedział jako pierwszy, więc jeśli podoba Ci się moja odpowiedź, zagłosuj też na jego).
OleDb to Twój problem. Jest to ogólne połączenie z bazą danych, które musi komunikować się z czymś więcej niż tylko serwerem SQL Server, w wyniku czego występuje sytuacja o najniższym wspólnym mianowniku, w której tylko najsłabszy złożony zestaw funkcji może być w pełni obsługiwany. Jedną z utraconych funkcji jest obsługa varchar(max).
Używasz SQL Server 2005 i VB.Net. Co powstrzymuje Cię przed używaniem System.Data.SqlClient zamiast System.Data.OleDb?
Edytuj
Znalazłem dokumentację dotyczącą problemu. Zobacz tutaj:
http://msdn.microsoft.com/ en-us/library/ms131035.aspx
Odpowiednia część: