2016-08-18 5 views
-1

フォームで選択されたドキュメントの種類に応じて参照を計算し、自動インクリメントされる数値を連結することを目的としたこの小さなスクリプトをまとめました。参照を計算するときにC#が発行される

を文字列またはバイナリデータがこのエラー

string typeDocAbbr = doc.GetStringValue("Document_type_Abbr"); 
string textRef = doc.GetStringValue("text_reference"); 

if (typeDocAbbr == "DIV") 
    returnValue = string.Format("{0}-{1}", typeDocAbbr, textRef); 

if ((typeDocAbbr == "FIC") || (typeDocAbbr == "FTC") || (typeDocAbbr == "FDP")) 
    returnValue = string.Format("{0}-{1}", typeDocAbbr, textRef); 


else 
{ 
    int chrono = 0; 
    string schrono = ""; 
    if(string.IsNullOrEmpty(doc.GetStringValue("Reference"))) 
    { 
     if (!string.IsNullOrEmpty(typeDocAbbr)) 
     { 
      EDITOR.Documents.DataSource.ChronoManagerWrapper cmw = 
       new EDITOR.Documents.DataSource.ChronoManagerWrapper(); 
      string Key = typeDocAbbr; 
      chrono = cmw.GetNewChrono("Process Studio", Key); 
      if (chrono < 10) 
       schrono = "0" + chrono.ToString(); 
      else 
       schrono = chrono.ToString()}; 
     } 
    } 
    returnValue = string.Format("{0}-{1}", typeDocAbbr, schrono); 
} 
+1

これは、デバッガのためのものです....(単位テスト) –

+1

文字列またはバイナリデータが切り捨てられるのは、Sql Serverからのメッセージで、フィールドには長すぎる値を保存しようとしていることを示します。あなたのデータベースをチェックしてください。投稿したコードはおそらくエラーとは関係ありません。 –

+1

コードが読めるようになったので、2番目の 'if'の前に' else'がありませんか? 'typeDocAbbr ==" DIV "ならば、' return'は 'else'ブロックで上書きされます。 –

答えて

0

を切り捨てられます:

the string or binary data would be truncated 

はあなたが示したコードにはありません保存するとき、私は、しかし、このエラーを取得しています。これはSQL Serverのエラーです。 DBフィールドが挿入しようとしている値に対して小さすぎます。

0

よろしくお願いします。 私はどこに間違っていたのか実際に分かりました。私が共有したスクリプトのreturnValueは何らかの理由で最大サイズが10だったカラムをフィードするようになりました。しかし、あなたの何人かが私のように初心者にうまく指摘しているように、エラーはスクリプトではなくテーブルから発生していて、値がカラムにとって大きすぎることを示しています(彼女の言ったことです)。 建設的な批判をありがとう!

関連する問題