@ vb-pros: klammeraffe in vb.net?
Oper8or 13.09.2006 - 16:37 957 3
Obermotz
Fünfzylindernazi
|
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
|
stellt hier nen Parameter dar, Stichwort SQL Injection
|
Obermotz
Fünfzylindernazi
|
Ah! Danke.. Man warum konnt ich da nicht selbst drauf kommen
|
rAmbo0
Bloody Newbie
|
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.
|