@ vb-pros: klammeraffe in vb.net?

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/vb-pros_klammeraffe_in_vb_net_168598/page_1 - zur Vollversion wechseln!


Obermotz schrieb am 13.09.2006 um 16:37

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?


dio schrieb am 13.09.2006 um 16:47

stellt hier nen Parameter dar, Stichwort SQL Injection


Obermotz schrieb am 13.09.2006 um 16:55

Ah! Danke..
Man warum konnt ich da nicht selbst drauf kommen :rolleyes:


rAmbo0 schrieb am 15.09.2006 um 11:46

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.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025