Re: DBParameter vs. direkter Angabe im SQL-Statement
- From: "Daniel Kuppitz" <daniel_kuppitz@xxxxxxxxxxx>
- Date: 23 Aug 2006 14:14:00 -0700
Hallo Paul,
in allen gängigen Beispielen zu ADO.NET sieht man immer Code der Art
cmd.CommandText = "INSERT INTO namen ( name ) VALUES ( @name )
cmd.Parameters.Add ( "@name", "Müller" );
Erhält man durch die Verwendung der Parameter-Klasse eigentlich einen
Vorteil gegenüber der direkten Formulierung als SQL-Anweisung, also z.B.
INSERT INTO namen ( name ) VALUES ( "Müller" )
Gegenüber
INSERT INTO namen ( name ) VALUES ( "Müller" )
nicht unbedingt, das dürfte aber auch selten der Fall sein. Anders bei
public void InsertName(string name)
{
// ...
cmd.CommandText = "INSERT INTO namen ( name ) VALUES ( " + name +
" )";
//...
}
Das ist eine potenzielle Angriffststelle für SQL Injections. Mit
parametrisierten Abfragen brauchst Du Dir über das Thema SQL
Injections keine Gedanken zu machen.
Weiterer Vorteil: Du musst Dir bei keinem Datentypen Gedanken machen,
wie er zu formatieren ist. Ob String, ob Guid, ob Datum - ganz egal -
Du übergibst einfach den .NET Datentypen und er wird automatisch ins
richtige Format gebracht.
--
MfG,
Daniel Kuppitz
.
- Follow-Ups:
- Re: DBParameter vs. direkter Angabe im SQL-Statement
- From: Günter Prossliner
- Re: DBParameter vs. direkter Angabe im SQL-Statement
- From: Paul Werkowitz
- Re: DBParameter vs. direkter Angabe im SQL-Statement
- References:
- DBParameter vs. direkter Angabe im SQL-Statement
- From: Paul Werkowitz
- DBParameter vs. direkter Angabe im SQL-Statement
- Prev by Date: DBParameter vs. direkter Angabe im SQL-Statement
- Next by Date: Re: DBParameter vs. direkter Angabe im SQL-Statement
- Previous by thread: DBParameter vs. direkter Angabe im SQL-Statement
- Next by thread: Re: DBParameter vs. direkter Angabe im SQL-Statement
- Index(es):
Relevant Pages
|