Con ODBC cambia la forma de indicar los parámetros, te dejo este ejemplo:
Código vb.net:
Ver originalUsing cmd As New OdbcCommand("select productid, productname from products where productid=(?)", cn)
cmd.Parameters.Add("@codigo", OdbcType.Int, 4).Value = variable_codigo
End Using
Como te das cuenta para indicar el parámetro lo haces con un signo de interrogación entre paréntesis.
Cualquier duda me avisas
PD: Podrías usar el Connector para MySQL en lugar de ODBC
http://dev.mysql.com/downloads/#connector-net