ADO.NET basics and command usage
All code you write to work with ADO.NET, whether in VB .NET, VC# .NET, or any of the .NET languages, will by executed by the common language runtime and is thus referred to as managed code. The common language runtime includes a host of runtime features including a class loader, thread support, exception manager, security engine, garbage collector, code manager, and type checker. In turn, all managed code is first compiled to a machine-independent intermediate language called Microsoft Intermediate Language (MSIL), and subsequently compiled to native instructions for execution in a just-in-time (JIT) manner as the common language runtime's class loader loads code at runtime.
Read the "ADO.NET in .NET" Section in Chapter 1 of Sams Teach Yourself ADO.NET in 21 Days from Sams Publishing for an in-depth look at ADO.NET basics.
Data providers in ADO.NET implement a Command class, such as SqlCommand or OleDbCommand, to execute action statements and submit queries to the database. This class must implement the IDbCommand interface. You can create the Command instance from a Connection instance using the IDbConnection.CreateCommand method. You can also instantiate it directly using a variety of constructors.
For a great section covering commands in ADO.NET, read Section 3.5 of Essential ADO.NET from Addison Wesley.