0

C# で IDataReader を使用して、特定のビジネス ユニットに対応するデータベースからホスト名のリストを取得しますが、何が問題なのかわかりません。SQL ステートメントに引数が多すぎるか、ここで ExecuteReader メソッドを使用しないでください。ターゲット DB に 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 に答える