1

さまざまなデータベース システムのデータベース クエリへのユーザー入力のエスケープをサポートする .Net プロジェクト/dll はありますか?

チーム全体で標準化し、1 つのモジュールを使用して、パラメーター化された SQL クエリで使用されるユーザー入力のエスケープを実行したいと考えています。

理想的には、構成ファイルでデータベース システム (oracle、SqlServer、mySql など) を指定し、Escape(variableName) を呼び出すことができるようにしたいと考えています。これにより、Web の現在のデータベース設定に基づいて文字列の内容がエスケープされます。構成ファイル。

そうでない場合、次善の策は EscapeForOracle、EscapeForSqlServer などです。

少なくとも、プロジェクトは Oracle、SqlServer、MySql をサポートする必要があります。

これを社内で作成する必要があるのか​​、それとも既存の商用/オープンソース製品が存在するのか疑問に思っています。

4

2 に答える 2

2

そんなもの必要ないと思います。

パラメーター化されたクエリ/ストアド プロシージャを実行する場合は、パラメーター コレクションを使用します。
適切なデータ型、長さ、精度を指定し、有効な値を指定してください。
エスケープは DB プロバイダーによって行われます。

あなたの質問を正しく理解していない場合はお知らせください。

于 2009-06-01T22:52:05.663 に答える
0

.NET では、SqlConnection の代わりに DbReader や DbConnection などの汎用クラスを使用できます。shahkalpesh と Lasse V. Karlsen が言ったように、パラメーターを使用でき、フレームワークまたはドライバーがエスケープを処理します。

しかし実際には、Oracle と Sql Server の両方に対応する製品を開発したい場合、オーバーヘッドが大きくなります。正しく逃げることは氷山の一角にすぎません。Oracle と Sql Server のテスト サーバーをインストールしていない場合は、まだ開始していない可能性があります :)

于 2009-06-01T23:11:47.463 に答える