OK then.
Since SQL Server 2008, there is a thing called table parameters whereby you can send up your entire datatable to a stored procedure in a single go. The stored proc can use a join or whatever to do the comparison and update/insert accordingly.
Working with batch data like this rather than making individual calls is lightning quick.
The basic steps are this:
create a user-defined table type in SQL Server which matches that of the table.
CREATE TYPE [dbo].[CustomerTable] AS TABLE(
[CustomerId] [int] NOT NULL,
[Field1] [int] NULL,
[Field2] [int] NULL,
etc.
You can use this type like any other as a parameter to your stored procedure. In the stored proc, work out how to do the reconciliation and put the whole thing in a transaction. It should take just a single parameter
create proc UpdateCustomers
(
@customers CustomerTable readonly
...
Then to call it, use ADO as you would normally. Just pass your datatable as the single parameter and mark it as type SqlDBType.Structured.
Bit short on time now, but let me know if more explanation is required. Google will help.