次のコード行があります。
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int, 4).Value = linkID;
しかし、私はsize
の使用について少し混乱しています。これは、サイズが4バイトだということですか?または4の長さなので1234
は許容されますが、12345
大きすぎますか?
サイズが修正されたタイプの場合、この引数は省略してください。単純に次のようになります。
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int).Value = linkID;
Size引数は、varchar
、nvarchar
などの可変サイズを持つことができるタイプのパラメーターにのみ関連します。
Intのサイズは4バイトです。
詳細については、 msdのDbParameterクラス nを参照してください。 SqlCeParameter
はDbParameter
を実装しているので関連性があります
次のセクションが関連しています。
Sizeプロパティは、バイナリタイプと文字列タイプに使用されます。
非文字列データ型およびANSI文字列データの場合、Sizeプロパティはバイト数を参照します。 Unicode文字列データの場合、サイズは文字数を指します。文字列のカウントには、終了文字は含まれません。
可変長データ型の場合、サイズはサーバーに送信するデータの最大量を表します。たとえば、Unicode文字列値の場合、Sizeを使用して、サーバーに送信されるデータの量を最初の100文字に制限できます。
Sizeプロパティの実装については、これを参照してください https://Gist.github.com/1932766 。
4バイト32ビットです。 32ビット整数です。
あなたがintに行くのなら、私が思うよりも、それのサイズに関係なくあります。
だからあなたのコードは
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int).Value = linkID;
サイズがmaaterであるvarchar、navarcharの場合は、.netコード、つまりパラメータでサイズを指定する必要があります。