Anda mungkin memerlukan tanda kutip di sekitar bidang string tersebut, tetapi, Anda harus menggunakan kueri berparameter!
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;
Kebetulan, kueri asli Anda bisa diperbaiki seperti ini (perhatikan tanda kutip tunggal):
"VALUES ('" + txtName.Text + "','" + txtPhone.Text + "','" + txtAddress.Text + "');";
tetapi ini akan membuatnya rentan terhadap serangan Injeksi SQL karena pengguna dapat mengetik
'; drop table users; --
ke salah satu kotak teks Anda. Atau, yang lebih biasa, Daniel O'Reilly yang malang akan mematahkan permintaan Anda setiap saat.