Je hebt waarschijnlijk aanhalingstekens nodig rond die tekenreeksvelden, maar je zou geparametriseerde zoekopdrachten moeten gebruiken!
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 = connection;
Overigens had je oorspronkelijke vraag als volgt kunnen worden opgelost (let op de enkele aanhalingstekens):
"VALUES ('" + txtName.Text + "','" + txtPhone.Text + "','" + txtAddress.Text + "');";
maar dit zou het kwetsbaar hebben gemaakt voor SQL-injectie-aanvallen aangezien een gebruiker kon typen
'; drop table users; --
in een van uw tekstvakken. Of, meer alledaags, de arme Daniel O'Reilly zou je vraag elke keer breken.