Most articles that illustrate how to send data via sockets tend to focus on sending and receiving simple textual data. While this is certainly useful, one very common practical need is to prefix a length value to the data being sent.
Articles Written by Tom Archer - MSFT
The ADO.NET classes support the ability to search, sort, and filter data once it's been retrieved. In fact, being able to perform these operations against your disconnected data without making continual round trips to the server is one of the strongest arguments for using disconnected data to begin with.
For those who are new to sockets programming or who've long ago forgotten the idiosyncrasies of byte ordering with sockets (as I had when I needed to know this last year), here's a primer on what byte ordering is, why it's needed, and terms such as little-endian, big-endian, network byte order, and host bye order.
Whether you're working with a connected or disconnected data store, the majority of database operations involve NURD work—New, Update, Read, Delete. However, as this section will illustrate, many of the sometimes very tedious database operations are made much easier with the help of the various ADO.NET classes.
There are times when it is advantageous to perform certain database operations in batch. This excerpt from Extending Applications with the .NET Framework details how and when.
Learn about basic ADO.NET operations with this excerpt from Extending MFC Applications with the .NET Framework.