0

データベースに挿入しようとすると、このエラーが発生します。サイズが十分に長いかどうか、属性が問題ないかどうかはすでに確認しました。これが私のSQLレイアウトです。

schoolID   int (Primary Key)
schoolNaam varchar(50)
stad       varchar(30)

挿入するための私のコード:

BLSchool blSchool = new BLSchool();
List<School> scholen = blSchool.GetAll();
School school = new School();
school.SchoolNaam = schoolnaam.ToString();
school.Stad = schoolstad.ToString();
int schoolID = blSchool.InsertSchool(school);
db.Schools.InsertOnSubmit(school);
db.SubmitChanges();
return school.SchoolID;
4

2 に答える 2

0

いいえ、サイズを確認していないか、少なくとも正しく確認していません。schoolnaam長さが 50 文字を超えているかschoolstad、30 文字を超えています。

そのエラーを回避するには、次のようなコードを用意します。

school.SchoolNaam = new string(schoolnaam.ToString().Take(50).ToArray());
school.Stad = new string(schoolstad.ToString().Take(30).ToArray());

値が長い場合、これは最初の 50/30 文字のみを使用します。

于 2012-12-16T08:39:28.717 に答える
0

文字列が長すぎます。まだ問題を見つけていないだけです。

おそらく、列の長さを増やすだけです。Avarcharは、必要なだけのスペースを取ります。サイズを大きくするためにスペースを無駄にしません。

また、おそらくクライアントで文字列を検証し、ユーザーにエラーを表示する必要があります。

ユーザーに通知せずにデータを破壊するため、単純に切り捨てないでください。

于 2012-12-16T09:37:47.807 に答える