Exception handling in C# uses four keywords: try, catch, finally, and throw. The try block identifies code that might cause exceptions. The catch block handles exceptions, while finally ensures code is always executed. Exceptions are represented by classes derived from System.Exception, and common exceptions include NullReferenceException and DivideByZeroException. ADO.NET provides objects like SqlConnection and SqlCommand to connect C# applications to SQL Server databases using connection strings. Data can be queried, inserted, and read from databases through these objects.