Due errori.
Primo:il segnaposto dei parametri non deve essere racchiuso tra virgolette singole. Altrimenti diventano stringhe letterali e non vengono più riconosciute
Secondo:AddWithValue accetta due parametri. Il primo è il nome del parametro, il secondo è il valore non il tipo di database.
MySqlCommand cmd = new MySqlCommand(@"Insert into personal(PAN,PName,Age)
values(@PAN,@PName,@Age)",con);
cmd.Parameters.AddWithValue("@PAN",panBox.Text);
cmd.Parameters.AddWithValue("@PName", nameBox.Text);
cmd.Parameters.AddWithValue("@Age",Convert.ToInt32(ageBox.Text));
cmd.ExecuteNonQuery();
Ovviamente questo è a rischio di generare un'eccezione se ageBox
è vuoto. Non conosco i tuoi requisiti, ma se il campo Età deve essere un numero valido, è possibile aggiungere un po' di controllo degli errori per evitare errori banali.
int ageValue;
if(!Int32.TryParse(ageBox.Text, out ageValue))
{
MessageBox.Show("Please type a valid value for Age!");
return;
}
.... insert code follows...