"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

@ vb-pros: klammeraffe in vb.net?

Oper8or 13.09.2006 - 16:37 957 3
Posts

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Hallo Kinder ham mal ne Frage zwecks vb.net (2003).
Ich muss an nem Programm weiterarbeiten, was soweit ganz gut funktioniert, jetzt steck ich aber. Und zwar in folgendem Code:

...
Public Shared Function DeleteObject(ByRef obj As Kalender, Optional ByVal trx As System.Data.SqlClient.SqlTransaction = Nothing) As Integer
Dim sSQL As String

Try
sSQL = "DELETE FROM [dbo].[tblKalender] " & _
"WHERE " & _
"@Id = Id"

Dim params() As SqlParameter
DBHelper.AddParameter(params, New SqlParameter("@Id", DBObject.FromInteger(obj.Id)))
DBHelper.ExecuteNonQuery(sSQL, params, trx)
Return 0
...

Der Klammeraffe - was soll der? Referenziert der irgendwie auf eine Variable außerhalb des Strings?
Bearbeitet von Obermotz am 28.09.2006, 15:55

dio

Here to stay
Registered: Nov 2002
Location: Graz
Posts: 4878
stellt hier nen Parameter dar, Stichwort SQL Injection

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Ah! Danke..
Man warum konnt ich da nicht selbst drauf kommen :rolleyes:

rAmbo0

Bloody Newbie
Avatar
Registered: May 2006
Location: bbb
Posts: 11
also das ist ein parameter, nur bei ms datenbanken ist da ein @ , fuer oracle verwendet man wieder ein anderes zeichen.

mit so nem parameter kann man wie schon gesagt injektions verhindern. dh. einschleusen von irgendwelchen boesartigen sql cmds die dir dann was aus der db loeschen oder systemtabellen veraendern.

die parameter haben bei datagrids, keine Ahnung ob vb.net sowas hat, ich selbst schreibe nur in c sharp, einen vorteil wenn es um das verarbeiten mehrerer daten geht.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz