0

在 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);
    }
4

1 回答 1

1

您缺少FROM关键字。

一般来说,如果你使用嵌入在 C# 程序中的 SQL,如果你先在 Query Analyzer / SQL Management Studio 中运行 SQL 真的会容易得多。MS SQL Express 是免费的;或者 VS Pro 也可以运行 sql 查询。

于 2014-04-22T22:19:33.853 回答