#.net #sqlexception
#.net #sqlexception
Вопрос:
cmd = new SqlCommand("INSERT INTO sms_sentmessages(Mobilefrom,Mobileto,Message,senddate) VALUES('" str.Substring(0, str.Length - 4).ToString() "','" number "','" txtmessage.Text.Replace("'", "''").Trim() "',getdate())", con);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
Ответ №1:
str.Substring(0, str.Length - 4)
и / или
txtmessage.Text.Replace("'", "''").Trim()
слишком велики, чтобы поместиться в столбец, в который вы пытаетесь вставить.
Ответ №2:
Ну, предположительно, вы пытаетесь вставить значение в таблицу, и оно превышает длину столбца. Вы должны проверить данные, прежде чем пытаться выполнить SQL insert.
Однако вам также следует использовать параметризованный запрос — в настоящее время ваш код уязвим для атаки с использованием SQL-инъекций. Смотрите сайт Bobby Tables для получения дополнительной информации. В принципе, параметризованный SQL позволяет вам хранить код (SQL) отдельно от данных (параметров), делая ваш код более понятным и предотвращая атаки с использованием SQL-инъекций (при условии, что вы также не используете динамический SQL).
(Наконец, непонятно, почему вы вызываете ToString()
результат Substring
вызова …)
Ответ №3:
Ваши данные (или, возможно, триггер) слишком велики, чтобы поместиться в столбец, который вы пытаетесь сохранить.
По крайней мере, это мое лучшее предположение.