5

手作業でローリングするSQLクエリのデータパラメータへの値の追加を処理するユーティリティを作成しました。消費は次のようになります

utility.Add("SELECT * FROM MyTable WHERE MyColumn = {0}", myVariable, DBType.TheType);

また

utility.Add("UPDATE MyTable SET MyColumn = {0}", myVariable, DBType.TheType);

myVariableのnull値はどのように処理する必要がありますか?

  1. すべての値は完全に信頼されている必要があります。責任は消費者のみにあります。とにかくnullが処理されることを消費者はどのように知るのでしょうか?
  2. nullは機能しないため、NullArgumentExceptionをスローする必要があります。なぜこれ以上進むのですか?
  3. nullは唯一の実行可能なソリューションであるため、自動的にDBNull.Valueとして解釈される必要があります。これはユーティリティですよね?それを利用可能にして、いくつかのコードを枯渇させてください!

オプションのボーナス質問:これらの議論が3人の政党候補によってなされた場合、彼らの政党はどうなるでしょうか。(そのような当事者の母国を明記してください)

4

2 に答える 2

1

Null 合体 Opをロック:

追加で、=... utility.Add("SELECT * FROM MyTable WHERE MyColumn {0}{1}", myVariable, DBType.TheType); の別のパラメーターを配置します。

Add メソッドで文字列をフォーマットする場合: ... = String.Format(sql,myVariable is null ? " IS " : " = ", myVariable ?? "Null"

おそらく、それについて少し詳しく説明したいと思うでしょう。?/: が使用されている場合は、その型にも ?/: 構造を使用する必要があるかもしれません。幸運を。

于 2011-08-17T06:40:04.937 に答える
0

Null は有効なクエリ パラメータです。クエリで使用するために DBNull に変換する必要はありません。

于 2011-08-16T23:15:26.147 に答える