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();
问问题
6333 次
3 回答
4
str.Substring(0, str.Length - 4)
和/或
txtmessage.Text.Replace("'", "''").Trim()
太大,不适合您要插入的列。
于 2011-05-03T16:04:32.897 回答
2
好吧,大概您正在尝试向表中插入一个值,并且它超过了列的长度。您应该在尝试执行 SQL 插入之前验证数据。
但是,您还应该使用参数化查询 - 目前您的代码容易受到 SQL 注入攻击。有关详细信息,请参阅Bobby Tables 网站。基本上,参数化 SQL 允许您将代码(SQL) 与数据(参数)分开,从而使您的代码更清晰并防止 SQL 注入攻击(假设您还没有使用动态 SQL)。
(最后,不清楚你为什么要调用调用ToString()
的结果Substring
......)
于 2011-05-03T16:03:06.450 回答
0
您的数据(或可能是触发器)太大而无法放入您尝试存储它的列中。
至少,这是我最好的猜测。
于 2011-05-03T16:03:03.893 回答