There are a few points here:
1. You get automcomplete on the (column / field names) and an error if you mistype or mismatch - your code is much more robust.
2. Say you access your code via a stored procedure (to apply filtering, groupling, join etc) and you (or someone edits) your stored procedure, to add a (returned) column which happens to be the 3rd column of 7: then that will break your code which refers to ordinal position. Actually if you got to the spec for SQL, you will find that ordinal position on a table may not be maintained, where as column name is guaranteed.
3. Now that the ordinal position problem in the VB implimentation is fixed (ms actually appologised and fixed it after I raised it with them see my earlier post) you can happly manipulate to you hearts content.
4. It quicker to code once you start doing more cool things. For example say you have a list of items and somewhere else on you page you want to display counts, sums or other agregate functions. Eg A list of shifts and a summary to the top: There are 17 shifts, the total time worked is 105 hours, the average per week is 28.5 hours, then list the shifts below. You can do mutiple queries (and round trips to the database: very expensive in terms of display time and scalability) or use linq to return the collection (one round trip), display it and do the sums.
HTH
Ian