hola Zephyros pues no se si este mal escrito el comando pero lo pusi asi:
create table tbusuarios (idusuarios int(40), codigo int(5), nombre varchar(10), ciudad varchar(10));
eso es todo no se si el problema este en el codigo del programa para introducir los datos por que ya ves que desde consola para agregar letras tienes que poner las comillas no se si aqui este bien mira es este
int clave = int.Parse(txtcodigo.Text);
string nombre = txtnombre.Text;
string ciudad = txtciudad.Text;
string q = "INSERT INTO tbusuarios (codigo,nombre,ciudad) VALUES (@codigo,@nombre,@ciudad)";
MySqlCommand comando = new MySqlCommand(q, conexion);
comando.Parameters.Add(new MySqlParameter("@codigo", MySqlDbType.Int16, 5));
comando.Parameters["@codigo"].Value = clave;
comando.Parameters.Add(new MySqlParameter("@nombre", MySqlDbType.VarChar, 20));
comando.Parameters["@nombre"].Value = nombre;
comando.Parameters.Add(new MySqlParameter("@ciudad",MySqlDbType.VarChar, 20));
comando.Parameters["@ciudad"].Value = ciudad;