Vamos al manual (
http://msdn.microsoft.com/es-es/library/ms366730.aspx):
La escritura de parámetros en una sentencia SQL embebida en ASP no es la misma que usando MySQLConnector.net:
Esto:
Se debe escribir:
porque ODBC espera la escritura de los parámetros de otra forma.
Veamos un ejemplo de MSDN
Código ASP:
Ver originalDim updateCmd As OdbcCommand = New OdbcCommand("UPDATE Users " & _
"SET LastActivityDate = ? " & _
"WHERE Username = ? AND Applicationname = ?", conn)
updateCmd.Parameters.Add("@LastActivityDate", OdbcType.DateTime).Value = DateTime.Now
updateCmd.Parameters.Add("@Username", OdbcType.VarChar, 255).Value = username
updateCmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = pApplicationName
updateCmd.ExecuteNonQuery()
En cualquier caso, sea o no la forma en que codificas, hay algo que queda claro:
1) En ODBC los parámetros no se usan con nombre, sino con orden, y para identificarlos sólo se usa "?".
2) El nombre de los parámertos se usa al insertar sus valores, pero precedidos de "@".
3) Necesitamos un buen manual de ODBC...