Dvě chyby.
První:Zástupný symbol parametrů by neměl být uzavřen v jednoduchých uvozovkách. Jinak se stanou doslovnými řetězci a nebudou nadále rozpoznávány
Druhý:AddWithValue má dva parametry. První je název parametru, druhý je hodnota, nikoli typ databáze.
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();
Samozřejmě je zde riziko vyvolání výjimky v případě ageBox
je prázdný. Neznám vaše požadavky, ale pokud je vyžadováno, aby pole Věk bylo platné číslo, je možné přidat trochu kontroly chyb, aby se předešlo banálním chybám.
int ageValue;
if(!Int32.TryParse(ageBox.Text, out ageValue))
{
MessageBox.Show("Please type a valid value for Age!");
return;
}
.... insert code follows...