2016-04-24 43 views
0

古い座標を見つけて、C#WPFを使用してデータベース内の新しい座標に置き換えたいと思います。私は、\ rを\のnこの文は れて"文字列またはバイナリデータが切り捨てられます。 r n文が終了しました"

を終了しました。

文字列またはバイナリデータが切り捨てられるこのエラーを持って、私は問題だものを見つけることができませんでした。これは私が使用私の方法です:

public void updateEvent(string oldCord,string newCord, DateTime dropDate) 
    { 

     using (SqlCommand cmd = new SqlCommand()) 
     { 
      cmd.CommandText = "UPDATE Event SET Date = @newDate ,[email protected] WHERE Cordinate = @oldCord"; 
      cmd.Parameters.AddWithValue("@newDate", dropDate); 
      cmd.Parameters.AddWithValue("@newCord", newCord); 
      cmd.Parameters.AddWithValue("@oldCord", oldCord);    
      cmd.CommandType = System.Data.CommandType.Text; 
      cmd.Connection = connection; 
      cmd.ExecuteNonQuery(); 
     } 
    } 
+1

テーブルのフィールドに収まるより多くのデータを書き込もうとしているため、この例外がスローされます。 100文字の 'string 'のように' varchar(50) 'フィールドに入れます。だから問題は、フィールド 'Cordinate'(おそらく' Coordinate'と名付けられるべきでしょう)が正確に定義されていて、あなたがそれに書き込もうとしている 'newCord'がどのくらい正確であるかです。 – Corak

+1

[あなたは既にAddWithValue()を使用して停止できますか?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/)をチェックしてください。 '.AddWithValue()'の使用を中止してください。予期しない驚くべき結果につながる可能性があります... –

+0

この記事はどうですか?http://stackoverflow.com/questions/17312558/database-insert-error-string-or-binary -data-be-be-truncated '? – GSP

答えて

1

一般的にこの問題の原因は、ストアドプロシージャに送信パラメータの長さは、データベース内の実際のテーブルのフィールドのサイズよりも大きいということです。

関連する問題