Du har sandsynligvis brug for anførselstegn omkring disse strengfelter, men du bør bruge parameterbaserede forespørgsler!
cmd.CommandText ="INSERT INTO Data ([Name],PhoneNo,Address) VALUES (@name, @phone, @address)";cmd.CommandType =CommandType.Text;cmd.Parameters.AddWithValue( "@name", txtName.Text);cmd.Parameters.AddWithValue("@phone", txtPhone.Text);cmd.Parameters.AddWithValue("@address", txtAddress.Text);cmd.Connection =forbindelse;
I øvrigt kunne din oprindelige forespørgsel være blevet rettet på denne måde (bemærk de enkelte anførselstegn):
"VÆRDIER ('" + txtName.Text + "','" + txtPhone.Text + "','" + txtAddress.Text + "');";
men dette ville have gjort det sårbart over for SQL Injection-angreb da en bruger kunne indtaste
'; drop table brugere; --
i en af dine tekstbokse. Eller mere hverdagsagtigt, stakkels Daniel O'Reilly ville bryde din forespørgsel hver gang.