Två fel.
Första:Parametrarnas platshållare ska inte omges av enkla citattecken. Annars blir de bokstavliga strängar och känns inte igen längre
Den andra:AddWithValue tar två parametrar. Den första är namnet på parametern, den andra är värdet inte databastypen.
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();
Naturligtvis riskerar detta att skapa ett undantag om ageBox
är tom. Jag känner inte till dina krav men om fältet Ålder måste vara ett giltigt nummer kan lite felkontroll läggas till för att förhindra banala fel.
int ageValue;
if(!Int32.TryParse(ageBox.Text, out ageValue))
{
MessageBox.Show("Please type a valid value for Age!");
return;
}
.... insert code follows...