I think you meant to say how should you be sending the data from client to the SQL Server. I would use HTTP for this, you should know HTTP is powerfull enough to be used as this. There are many APIs already built on HTTP/HTTPS.
POST requests can be used while sending the data. You can learn more about this method of sending the data from/to client from SQL Server (or the web server as a whole) here,
https://en.wikipedia.org/wiki/POST_(HTTP)[
^]
Your second question is a simple one, SQL Server has a built-in function to remove the redundant data. For example, if you want the ClientID to be unique, you can make it a PrimaryKey in the Database and Database will automatically make it impossible for the user to add duplicate data. You can have two or more columns made a Unique field too, they're known as CompositeKeys. So, you won't need any more coding for this one.
More on Primary key here,
http://technet.microsoft.com/en-us/library/ms191236(v=sql.105).aspx[
^]
Do not stop the user from writing any sort of data, until he is writing stop your processes. Once he presses the button to synchronize the data with the SQL Server, do the Validation for the data there. Send the data to the server and check for any duplication, if there is then prevent him from adding the data by showing him an error message.