I have one thing to add to this. How about database access ?? It seems more or less going through a same mechanism where you have to interface between fields of which you don't know the exact type and the strong typed variables in the language. How does the compiler handle that, since it cannot determine the type of a field at compile time ?? Walter,
Typed datasets that correspond to your data might be one answer. The compiler can enforce data types, so long as you reference the field as an object (e.g. MyDataSet.MyTable[0].MyField).
If you search on typed datasets in the .NET area under Bonnie Berent's ID, you'll find some great information.
Kevin