I haven't really tried it, but it seems to show some promise
http://msdn.microsoft.com/en-us/library/det4aw50.aspx[
^] . For the filter expression string, you can construct it using the row values you add in the datagrid (assuming you are also propogating these changes back to the dataset). The filter thing may be a bit tricky since you don't mention a clear primary key to check against, and so you may have to hack around a bit for that. If the returned array contains more than one value you would know that there are duplications and so you can reject the changes, otherwise accept them.
HTH
Cheers...