Nazila I thought I might give you a different twist on your question. I write classes that overloaded the toString()'s (if I am being lazy I make them methods) so that I can always get my variables back with the correctly. Example public class AccessDb { //in my data object public int pInt(int intIn) // This is the lazy way {// this is only an example I would use inherited base classes and // overloading the toString it is so much cleaner. return "'" + intIn.toString() + "'" } } // then later in your Business object code AccessDB db = new AccessDb(); db.Update("update table set field=" + db.pInt(intvariable)+ "where otherfield=yes"); I started doing this so I don't get caught recoding everytime the database gets switched from Access to MySql or something else happens. I really like insulating the data objects from the business objects and this is a big help in making generic interfaces. My applications can switch database backends by setting preferences which makes my life much better. It is very important to read up on your database access in .Net and get your design down solid first you will need this when you are setting up the data classes. There are a couple of really cool articles on how to implement this. Let me know what you think of the idea. Kevin