OriginalGriff
Как уже говорили Патрис и Мадмич, никогда не объединяйте строку для формирования SQL-команд.
Но есть и другие вещи, о которых вам нужно подумать.
Вы всегда должны перечислять столбцы, в которые вы хотите вставить свои данные:
INSERT INTO MyTable (Column1, Column2) VALUES (@C1, @C2)
Потому что если вы этого не сделаете, то SQL будет "начинаться сверху" и работать вниз по списку, что делает ваш код уязвимым для проблем, если определение таблицы будет переупорядочено. А поскольку большинство таблиц начинаются с строки идентификатора, которая часто является либо IDENTITY, либо UNIQUEIDENTIFIER, вам нужно "пропустить" эту строку перед вставкой данных в новую строку, поскольку вы не можете указать значение строки идентификатора, которое предоставляется самой БД. Даже если эта таблица не включает столбец идентификатора (и он почти наверняка показывает!), это хорошая практика, чтобы быть конкретным об этих вещах, поскольку это предотвращает повреждение данных, которое может быть ужасной ручной работой, чтобы разобраться, когда это наконец замечено.
Сделайте себе одолжение и прекратите использовать имена Visual Studio по умолчанию для всего - вы можете помнить, что "TextBox8" - это номер мобильного телефона сегодня, но когда вам нужно будет изменить его через три недели, вы это сделаете? Используйте описательные имена - например, "tbMobileNo", - и ваш код станет легче читать, более самодокументируемым, легче поддерживать - и на удивление быстрее кодировать, потому что Intellisense может добраться до "tbMobile" за три нажатия клавиш, где "TextBox8" занимает размышление и 8 нажатий клавиш...