Αυτό που θέλεις να κάνεις πρακτικά γίνεται πολύ εύκολα χρησιμοποιώντας ένα strong typed dataset. Ουσιαστικά το strong typed dataset είναι ακριβώς αυτό που είπες, μια κλάση-dataset, που όμως την βλέπει ο designer. Για να δημιουργήσεις ένα τέτοιο dataset, τα βήματα είναι τα εξής :
- Είτε σε ένα component class είτε στην ίδια την σελίδα σου ορίζεις ένα DataAdapter που να έχει ως Select Command την stored procedure σου.
- Με δεξί κλικ στον DataAdapter επιλέγεις το Generate DataSet (ή κάτι τέτοιο). Αυτόματα φτιάχνεται ένα XSD και μια κλάση που το συνοδεύει (βασικά πολλές φτιάχνονται αλλά anyway ).
- Κατόπιν πετάς από τον Designer ένα DataSet τέτοιου τύπου στη φόρμα και πλέον μπορείς να κάνεις bind στα πεδία του DataSet.
Αν αλλάξει όνομα η stored procedure σου το μόνο που αλλάζει είναι ο DataAdapter. Ακόμα όμως κι αν αλλάξουν ονόματα τα πεδία μπορείς να αλλάξεις τα Table Mappings του DataAdapter και έτσι τα πεδία του DataSet να μην αλλάξουν όνομα. Ελπίζω ότι αυτό είναι περίπου που προσπαθείς να πετύχεις...
Στερνή μου γνώση να σε είχα πρώτα...