2017-02-11 2 views
0

Старый SQL:Преобразование SQL в C# SQL запроса

SELECT 
    [FileName], [FilePath] 
FROM 
    dbo.[tb_CrawlData] cr 
WHERE 
    cr.Content LIKE '%' + (SELECT content 
          FROM [tb_CrawlData] 
          WHERE Content LIKE '%test1%') + '%' 
GROUP BY 
    cr.FileName, [FilePath] 
ORDER BY 
    cr.FileName 

Старый C# SQL запрос:

Sqlquery = "SELECT [FileName], [FilePath]" 
       + " FROM [tb_CrawlData] cr " 
       + " WHERE cr.Content like '%' + (" + Sqlquery.Substring(Sqlquery.IndexOf(" SELECT") + 1) + ") + '%' ";  
     Sqlquery += " GROUP BY cr.FileName,[FilePath]" 
        + " ORDER BY cr.FileName "; 

Новый SQL:

select 
    [FileName], [FilePath] 
from 
    dbo.[tb_CrawlData] cr 
where exists (select 1 
       from [tb_CrawlData] cd 
       where cd.Content like '%data%' 
       and cr.Content like '%' + cd.Content + '%') 
group by 
    cr.FileName, [FilePath] 
order by 
    count(*) desc, cr.FileName 

Новый C# SQL запрос:

Новый sql, я не уверен, как изменить для C#.

+6

извините, у вас есть рабочий образец для него в вашем посте - где точная проблема? знаете ли вы, как создавать строки в C#? ', если да, вы можете создать свой SQL-запрос. но читайте о параметризованных запросах, ваш образец очень опасен - он уязвим для SQL-инъекции. – nabuchodonossor

+0

Этот сложный случай означает, что подзапрос существует внутри запроса, включающего 2 таблицы SQL. Лучше сначала написать основной запрос. –

ответ

0

Использование QueryFirst. Вы можете запустить свой SQL непосредственно в своем приложении C#.

отказ от ответственности: который я написал :-)

Смежные вопросы