आपको शायद उन स्ट्रिंग फ़ील्ड के आसपास उद्धरण चिह्नों की आवश्यकता है, लेकिन, आपको पैरामीटरयुक्त प्रश्नों का उपयोग करना चाहिए!
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;
संयोग से, आपकी मूल क्वेरी को इस तरह ठीक किया जा सकता था (एकल उद्धरणों पर ध्यान दें):
"VALUES ('" + txtName.Text + "','" + txtPhone.Text + "','" + txtAddress.Text + "');";
लेकिन इससे यह SQL इंजेक्शन हमलों के प्रति संवेदनशील हो जाता चूंकि उपयोगकर्ता टाइप कर सकता है
'; drop table users; --
अपने टेक्स्टबॉक्स में से एक में। या, अधिक सांसारिक रूप से, गरीब डेनियल ओ'रेली हर बार आपकी क्वेरी को तोड़ देगा।