In the end, it seems as if it’s just easier to use the CommandBuilder. There may be cases where this is not possible. At any rate, I hope this exercise helps to show what goes on internally in the DataAdapter object. Perhaps you will find some of these procedures useful in your own applications. Feel free to use them but remember they will probably need to be tested more thoroughly than what I have done.
In the next chapter we will look at the DataSet in detail. Since the DataSet is really the heart of ADO .NET, we will spend a lot of time in this chapter.