2017-02-11 4 views
0

Alt SQL:Convert SQL C# SQL-Abfrage

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 

Alt C# SQL-Abfrage:

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 "; 

New 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 

Neue C# SQL-Abfrage:

Die neue SQL, ich bin nicht so sicher, wie für C# zu ändern.

+6

leider schrieb, haben Sie ein Arbeitsmuster für sie in Ihrem Beitrag - wo ist das genaue Problem? Wissen Sie, wie man Zeichenketten in C# erstellt? 'Wenn ja, können Sie Ihre SQL-Abfrage erstellen. aber lesen Sie über parametrisierte Abfragen, Ihre Stichprobe ist sehr gefährlich - ihre anfällig für SQL-Injektion. – nabuchodonossor

+0

Dies ist ein komplizierter Fall, der bedeutet, dass eine Unterabfrage in einer Abfrage mit zwei SQL-Tabellen vorhanden ist. Sie sollten besser zuerst grundlegende Abfrage schreiben .. –

Antwort

0

Verwenden Sie QueryFirst. Sie können Ihre SQL direkt in Ihrer C# -Anwendung ausführen.

Hinweis: was ich :-)