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インジェクション攻撃に対して脆弱です。詳細については、BobbyTablesサイトを参照してください。基本的に、パラメーター化されたSQLを使用すると、コード(SQL)をデータ(パラメーター)から分離して、コードをより明確にし、SQLインジェクション攻撃を防ぐことができます(動的SQLも使用していない場合)。
(最後に、なぜあなたが電話ToString()
の結果を呼んでいるのかは明らかではありませんSubstring
...)
于 2011-05-03T16:03:06.450 に答える
0
データ(またはトリガー)が大きすぎて、保存しようとしている列に収まりません。
少なくとも、それが私の一番の推測です。
于 2011-05-03T16:03:03.893 に答える