@ там ЕМНИП ставится от балды, можешь использовать любой другой символ или не использовать вообще. Важно, чтобы имя параметра в запросе совпадало с именем параметра, который ты затем создаешь.
Драйвер БД затем изменит твой запрос таким образом, чтобы вместо параметров стоял некий понятный серверу символ, ну и параметры тоже к запросу добавит. Сервер, таким образом, будет исполнять некоторый параметрический запрос, что работает быстрее обычного запроса из-за отсутствия необходимости каждый раз такой запрос заново парсить и спасает от SQL injection - атак.
Иванов ИванУченик (7)
5 лет назад
хз.. мучаюсь чета не работает хотя базу программно создал а запись не добавляется
SQLC.CommandText = "INSERT INTO [REGLG01] ([KEY], [DATA_INPUT],[GUID,FAMILY], [F_NAME], [S_NAME], [BIRTHDAY], [SEX]," +
"[SNILS],[TYPE_DOC],[SERIAL_DOC], [NUMBER_DOC], [REG_ADDRESS],[LIVE_ADDRESS], [SERIAL_POLIS], [NUMBER_POLIS],"+
"[DOC_NAME],[DOC_NUMBER], [DOC_DATE],[DOC_FROM],[DATE_START],[DATE_STOP],[CODE_LGOT],[VOV],[IS_FEDERAL], [LPU_CODE_F],"+
"[PRIKREP], [LPU_CODE],[OGRN], [FONE],[STATUC_SL],[DATA_SL],[ID_USER_SL]) VALUES (" +
"@KEY, @DATA_INPUT, @GUID,@FAMILY,@F_NAME,@S_NAME,@BIRTHDAY,@SEX,@SNILS,@TYPE_DOC,@SERIAL_DOC,@NUMBER_DOC,"+
"@REG_ADDR
var cmd = new SqlCommand("INSERT INTO [leq] ([ID], [Name]) VALUES (@id, @name)", conn);
cmd.Parameters.Add("@id", "8");
cmd.Parameters.Add("@name", textBox1.Text);
cmd.ExecuteNonQuery();
поясните значение sql команды формы записи и значка @ и последующие строки