MyCmd.Commandtext = "UPDATE TMT.AUH A SET A.TEF = ? WHERE A.NL = 11 and A.SN= ?"

Parameter werden bei AS/400-Kommandos automatisch der Parameters-Auflistung eines Command's hinzugefügt (man kann das auch selber).
Der Zugriff erfolgt über:

Langform:
MyCmd.Parameters(n).Value = Wert

Kurzform:
MyCmd(n) = Wert

Die "?" werden von 0 beginnend durchnummeriert.
MyCmd(0) = 1. ?
MyCmd(1) = 2. ?
usw.

Deine Variablen temp1 und temp2 werden nicht mehr benötigt, siehe mein Beispiel.
Im Debugger kannst du dir die Inhalte dann auch ansehen.