LINQ SQL-Abfrage überprüft, ob ein Objektfeld nicht null ist

8

Ich versuche eine SQL-Abfrage zu schreiben, die eine Gridview nach den eingegebenen Feldern filtert. Es gibt vier Felder, Titel, Vorname, Nachname und Company.Name.

Die ersten drei sind gut, denn sie sind nie null, aber die vierte kann null sein. Die folgende LINQ-Abfrage funktioniert problemlos:

%Vor%

Aber wenn ich versuche, einen Filter für die Firma einzufügen, erhalte ich einen Fehler zur Laufzeit, wenn die Firma null ist

%Vor%

Was ich gerne wissen würde, ist eine Möglichkeit, die Abfrage so zu erstellen, dass sie nur dann filtert, wenn das Feld client.Company nicht null ist.

Auch bin ich anfällig für SQL-Injection oder dergleichen, wenn ich direkt aus den Textfeldern wie folgt ziehe. Ich weiß in diesem Fall ist es nicht mit der DB verbunden, aber wenn es war, könnten sie einen Tropfen tun. Oder, selbst wenn es nicht mit der db verbunden ist, könnten sie mit den Objekten in der Liste herumspielen?

Danke

Jon Hawkins

    
Jon 13.04.2009, 11:35
quelle

3 Antworten

5

Ich nehme an, Sie möchten alle übereinstimmenden Datensätze, in denen Company null ist, aber nach Namen gefiltert werden, wenn das Unternehmen existiert. Folgendes sollte das tun. Außerdem müssen Sie sich keine Gedanken über SQL-Injection machen, da LINQToSQL parametrisierte Abfragen verwendet. Sie müssen sich darum kümmern, HTML zu bereinigen, das sich möglicherweise in den Clientsteuerelementen befindet, wenn Sie beabsichtigen, Einfügungen von ihnen vorzunehmen und einen der Werte im Web anzuzeigen, um XSS-Angriffe zu vermeiden.

%Vor%     
tvanfosson 13.04.2009, 11:49
quelle
3
%Vor%

........

So ähnlich

    
omoto 13.04.2009 11:41
quelle
1

1) Linq to Sql verwendet Parameter in seinen Abfragen, so dass es nicht anfällig für SQL-Injection ist. VERTRAUEN SIE NIEMALS USER-EINGANG.

2) Linq bietet keine kostenlose Nullprüfung, sorry. Sie können dies mit einer einfachen Erweiterungsmethode erreichen, um Ihre linq-Abfrage zu trimmen und anzupassen:

%Vor%     
Will 13.04.2009 11:44
quelle

Tags und Links