Twee fouten.
Ten eerste:de tijdelijke aanduiding voor parameters mag niet tussen enkele aanhalingstekens worden geplaatst. Anders worden ze letterlijke tekenreeksen en worden ze niet meer herkend
Tweede:AddWithValue heeft twee parameters. De eerste is de naam van de parameter, de tweede is de waarde, niet het databasetype.
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();
Natuurlijk loopt dit het risico een uitzondering te genereren als de ageBox
is leeg. Ik weet niet wat uw vereisten zijn, maar als het veld Leeftijd een geldig getal moet zijn, kan een beetje foutcontrole worden toegevoegd om banale fouten te voorkomen.
int ageValue;
if(!Int32.TryParse(ageBox.Text, out ageValue))
{
MessageBox.Show("Please type a valid value for Age!");
return;
}
.... insert code follows...