The logic is quite simple, you need to determine what constitutes as a row being "equal" to another row. Once you have this, there are a variety of ways to test if a row exists using your criteria. I personally would use a Stored Procedure, but you seem to be just creating all the commands in code. That's fine.

So what I would do if I were you is create a SqlCommand object that is just a simple SELECT. The SQL of this SELECT command would have the logic to select the possibly hypothetical row that would be equal. I would then call ExecuteNonQuery on the command. This will return how many rows were affected by the query. If the result of this method call is > 0, then the record already exists.

Your best bet is to start in the data base to create the SQL that you will use in code. If it doesn't work in the data base it isn't going to work in code. If it doesn't work in code, check if it works in the data base.