如何在c#中执行多连接SQL查询

时间:2014-04-22 22:14:17

标签: c# sql idatareader executereader

在c#中使用IDataReader从数据库中提取与特定业务单位对应的主机名列表,但无法找出问题所在。我猜测SQL语句中有太多参数,或者不应该使用此处的ExecuteReader方法。我无法在目标数据库中创建SP,因此我将以其他方式运行查询。任何帮助将不胜感激。

    public static IDataReader GetCETHostsList()
    {
        string mySQL = @"SELECT distinct(dbo.Infrastructure.Hostname) dbo.Application_Infrastructure 
                        INNER JOIN dbo.Applications ON dbo.Application_Infrastructure.ID = dbo.Applications.ID
                        INNER JOIN dbo.Infrastructure ON dbo.Application_Infrastructure.InfrastructureID = dbo.Infrastructure.InfrastructureId 
                        WHERE Unit is not null
                        AND dbo.Applications.Unit like '%Terminal%' 
                        AND (dbo.Infrastructure.Hostname like '%ST%' or dbo.Infrastructure.Hostname like '%TR%' )";
        return DatabaseFactory.CreateDatabase("myDB").ExecuteReader(mySQL);
    }

1 个答案:

答案 0 :(得分:1)

您错过了FROM关键字。

通常,如果您使用嵌入在C#程序中的SQL,那么如果您首先在查询分析器/ SQL管理工作室中运行SQL,那么它实际上要容易得多。 MS SQL Express是免费的;或VS Pro也可以运行SQL查询。