4

sqlcommand.Parameters.Add(...)関数には複数のオーバーロードがあります。サイズをとらないものもあれば、サイズをとるものもあります。デフォルトではどのサイズが設定されていますか?パラメータサイズを設定しないのは安全ですか?パフォーマンスに影響しますか?

4

2 に答える 2

4

SqlParameter.Sizeプロパティdocoから

明示的に設定されていない場合、サイズは指定されたパラメーター値の実際のサイズから推測されます。

293315にPeterWoneによる素晴らしい返信があり、それが実際に何を意味するのかをより詳細に説明しています。

于 2009-05-24T12:32:03.177 に答える
1

データベースデータ型に対して大きすぎるパラメータを.NetコードからSQLServerに送信することができます。.Netコードでパラメーターを作成するときにサイズを設定した場合、大きすぎる値が送信されると例外がスローされます。したがって、すぐにわかり、データベース呼び出しを無駄にすることはありません。

または、特定のテキストフィールドに最大文字数を設定することもできます。データベースでは400文字の名前が許可されている場合がありますが、必要なのはvarchar100のみです。

パラメータNullableプロパティも同様です。これはオプションですが、sproc呼び出しでパラメーターをnullにできない場合は、.Netコードでパラメーターをnullにできないようにすると、問題がより早く明らかになります。

于 2009-05-24T12:32:49.367 に答える