Как я могу выполнить многопользовательский SQL-запрос в C#
Использование IDataReader в C# для извлечения списка имен хостов из базы данных, которые соответствуют определенному бизнес-подразделению, но не могут выяснить, что не так. Я предполагаю, что в операторе 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 ответ
Вы скучаете по FROM
ключевое слово.
Как правило, если вы используете SQL, встроенный в программы на C#, действительно намного проще, если вы сначала запускаете SQL в Query Analyzer / SQL Management Studio или что-то еще. MS SQL Express бесплатен; или VS Pro тоже может запускать sql запросы.