19

I'm trying to dynamically get a databases Table structure using only C# code as follows:

using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;

public class LoadStuff
{
    ...
    public void LoadDatabase(string vDatabaseName)
    {
        using (var vSqlConnection = new SqlConnection(DatabaseConnectionString))
        {
            var vConnection = new ServerConnection(vSqlConnection);
            var vServer = new Server(vConnection);
            var vDatabase = vServer.Databases[vDatabaseName];
            var vTables = vDatabase.Tables;
        }
    }
}

However, I cannot find the .dll file to add a reference too. I'm using Visual Studio 2010 Professional. Any suggestions?

Garett
  • 16,632
  • 5
  • 55
  • 63

3 Answers3

27

It is located in c:\program files\microsoft sql server\xxx\sdk\assemblies on my machine. Where xxx is the SQL Server version number (90 or 100). Not sure how it got there.

Hans Passant
  • 922,412
  • 146
  • 1,693
  • 2,536
7

Please right click your solution and select 'Add reference' and then select the following dlls:

  • C:\WINDOWS\assembly\GAC_MSIL\Microsoft.SqlServer.SMO
  • C:\WINDOWS\assembly\GAC_MSIL\Microsoft.SqlServer.ConnectionInfo
  • C:\WINDOWS\assembly\GAC_MSIL\Microsoft.SqlServer.Management.Sdk.sfc
Toon Krijthe
  • 52,876
  • 38
  • 145
  • 202
Phyu Sin Kyaw
  • 71
  • 1
  • 2
  • 1
    This didn't work for me, but was a good hint. I ended up installing these via NuGet. Right click on Refernces, Manage NuGet Packages, search for Microsoft.sqlserver. then install the Microsoft.SqlServer.* DLL's of interest. (Feb 2016, Visual Studio 2015 Pro Update 1) – TomEberhard Feb 05 '16 at 19:03
1

On my machine it is located at C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies. As an alternative, you can also download the standalone installation from the SQL Server 2008 or 2008 R2 feature packs. There are individual x86 and x64 installation packages available.

Garett
  • 16,632
  • 5
  • 55
  • 63