public bool Insert(Kid kid)
        {
            bool insertSuccessful;

            if (kid == null || !kid.IsValidNew())
                throw new ArgumentException();

            var cmd = DBUtility.SqlCommand("Kid_Insert");
            // Start a local transaction.
            var transaction = cmd.Connection.BeginTransaction(IsolationLevel.ReadCommitted, "Kid_Insert");
            cmd.Transaction = transaction;

            try
            {
                cmd.Parameters.Add("@Name", SqlDbType.Text, 50);
                cmd.Parameters.Add("@Email", SqlDbType.Text, 150);
                cmd.Parameters["@Name"].Value = kid.Name;
                cmd.Parameters["@Email"].Value = kid.Email;

                int returnValue =  cmd.ExecuteNonQuery();
                transaction.Commit();
                if (returnValue < 0)
                {
                    throw new Exception("Error Text Added to the Database: " + returnValue.ToString());
                }
                else
                {
                    insertSuccessful = true;
                }
            }
            catch (Exception e)
            {
                try
                {
                    transaction.Rollback();
                }
                catch (SqlException ex)
                {
                    if (transaction.Connection != null)
                    {
                        Console.WriteLine("An exception of type " + ex.GetType() +
                            " was encountered while attempting to roll back the transaction.");
                    }
                }

                Console.WriteLine("An exception of type " + e.GetType() +
                    " was encountered while inserting the data.");
                Console.WriteLine("Neither record was written to database.");
                insertSuccessful = false;
            }
            return insertSuccessful;

        }