2

実は疑問があるので、クリアしてください。2行で同じ作業を行います。以下を参照してください

1. cmd.Parameters.AddWithValue("@UserName",objBELUserDetails.UserName);

2. cmd.Parameters.Add("@UserName",SqlDbType.Nvarchar,50).
                                      Value=objBELUserDetails.UserName;

どちらの行も同じように機能します。

サイズを指定しない場合、サイズはデフォルトでパラメーターの値である文字列の長さに設定されます。型を省略すると、パラメーター値の型が調べられ、大きな case ステートメントを使用してオブジェクトの型がマップされます。関連する Sql タイプに。自分でタイプを指定すると、コードを実行する必要がなくなり、コードのパフォーマンスが向上することは明らかです。

コードの 2 行目は 1 行目よりも時間がかかり、コードのパフォーマンスに影響を与えると思いませんか?パラメータのサイズ。ではない ?

4

2 に答える 2

1

コードの 2 行目は 1 行目よりも時間がかかり、コードのパフォーマンスに影響を与えると思いませんか?パラメータのサイズ。ではない ?

まず、ここで「最初」と「2番目」が間違っていると思います。これは、特定のタイプとサイズを持つ2 番目のバージョンです。

第 2 に、暗黙の型が明示的に指定した型と同じである場合、パフォーマンスはまったく影響を受けません。あなたはデータベース クエリを作成しています。オブジェクトの型と文字列の長さを見つけることは、ほぼ確実にネットワーク アクティビティを含む呼び出しの残りの部分と比較して測定可能であると本当に思いますか? 型が正しく推論されない場合、回避できる別の場所で余分な変換が発生する可能性があります。

パラメーターの型とサイズを指定する重要な理由は他にもあります。パラメーターに関する情報が明確になり、データベースが期待するものと一致することを誰でも確認できるからです。文字列を変換できる型は複数あり、数値も同様です。タイプを明示的に記述することで、あいまいさを取り除きます。

于 2013-02-21T07:33:34.987 に答える
0

command.Parameters.Addのように型を明示的に指定しないと、入力を期待される型に暗黙的に変換しようとします。

また、この暗黙的な変換は最適な変換ではない可能性があるため、パフォーマンスが低下する可能性があります。

ここをチェックしてください:Parameters.AddWithValueとParameters.Add

于 2013-02-21T07:30:47.780 に答える