1

spring.net と ADOTemplate を使用してデータベースにクエリを実行する DAO があります。

var sql = "select id, name, description from item where description like '%@description%'";
var dbParameters = AdoTemplate.CreateDbParameters();
dbParameters.Add("description", DbType.String).Value = query.Description;
return AdoTemplate.QueryWithRowMapperDelegate<Item>(...) 

SQL 文字列は dbparameter 展開なしで文字通りデータベースに送信されるため、これは失敗します。

これに対する私の解決策は次のとおりです

var sql = "select id, name, description from item where description like '%" + query.Description + "%'";
return AdoTemplate.QueryWithRowMapperDelegate<Item>(...) 

しかし、現在のソリューションでは SQL インジェクション攻撃が可能になるため、IDBParameters を使用したいと思います。これを達成する方法に関するドキュメントには何も見つかりません。

4

0 に答える 0