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();
答案 0 :(得分:4)
str.Substring(0, str.Length - 4)
和/或
txtmessage.Text.Replace("'", "''").Trim()
太大而无法插入您要插入的列。
答案 1 :(得分:2)
嗯,大概是你试图在表中插入一个值,它超过了列的长度。您应该在尝试执行SQL插入之前验证数据。
但是,您应该 使用参数化查询 - 目前您的代码容易受到SQL注入攻击。有关详细信息,请参阅Bobby Tables site。基本上,参数化SQL允许您将代码(SQL)与数据(参数)分开,使您的代码更清晰并防止SQL注入攻击(假设您不是也使用动态SQL。)
(最后,不清楚为什么要对ToString()
来电的结果致电Substring
...
答案 2 :(得分:0)
您的数据(或可能是触发器)太大,无法放入您尝试存储的列中。
至少,这是我最好的猜测。