19

我正在尝试仅使用 C# 代码动态获取数据库表结构,如下所示:

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;
        }
    }
}

但是,我也找不到要添加引用的 .dll 文件。我正在使用 Visual Studio 2010 Professional。有什么建议么?

4

3 回答 3

27

它位于我机器上的 c:\program files\microsoft sql server\xxx\sdk\assemblies 中。其中 xxx 是 SQL Server 版本号(90 或 100)。不知道它是如何到达那里的。

于 2010-08-24T12:35:48.190 回答
7

请右键单击您的解决方案并选择“添加引用”,然后选择以下 dll:

  • 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
于 2011-07-19T11:02:07.900 回答
1

在我的机器上,它位于C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies. 作为替代方案,您还可以从 SQL Server 20082008 R2功能包下载独立安装。有单独的 x86 和 x64 安装包可用。

于 2010-08-24T12:51:21.937 回答