The type or namespace name 'DataSetExtensions' does not exist in the namespace 'System.Data' (are you missing an assembly reference?)

DarthVegan picture DarthVegan · Feb 1, 2015 · Viewed 9.4k times · Source

I know this is a common error but I have the correct reference to the System.Data.DataSetExtensions.dll added to the project and my project is a SQL CLR project built for .net 4.5 and I'm getting the error at the following line:

using System.Data.DataSetExtensions;

I also checked the properties for the dll and it is referencing the correct version for the 4.5 dll so what else could possibly be causing this issue? Is this an issue with SQL CLR projects?

Answer

Jon Skeet picture Jon Skeet · Feb 1, 2015

System.Data.DataSetExtensions is an assembly, not a namespace. You just need to add a reference to System.Data.DataSetExtensions.dll (as you say you already have) and then a using directive for the System.Data namespace:

using System.Data;

That will pull in all the extension methods in the classes in that namespace, e.g. DataRowExtensions.

When you're looking in documentation, always be careful about the difference between namespaces and assembly names - they're often the same, but they're logically independent.