4

私はこれに非常に慣れていません。私が完全に見逃している明らかな何かがあるかもしれませんが...

SQL クエリ (C# を使用した ASP.NET) を作成すると、次のようになります。

var query = db.Query("SELECT * FROM pageinfo WHERE pageID = 1");

動作しますが、これは次のとおりです。

var pageID=1;
var query = db.Query("SELECT * FROM pageinfo WHERE pageID = @pageID");

ではない。

基本的に、私がやりたいことは、クエリに変数を配置することだけです。これを行うための特別な構文はありますか?

ありがとう。

4

2 に答える 2

15

これを行うための特別な構文はありますか?

はい、SQLParameterを使用します。

何かのようなもの:

SqlCommand cmd = new SqlCommand("SELECT * FROM pageinfo WHERE pageID = @pageID");
cmd.Parameters.AddWithValue("@pageID", 2);

現在の方法db.Queryは、独自の実装のようです。そのメソッドをオーバーロードしてリストを受け取り、SqlParameterそれらのパラメーターをコマンドに追加できます。これにより、 SQL インジェクションを防ぐことができます

于 2013-03-18T11:39:21.167 に答える
0
var pageID=1;
var query = db.Query("SELECT * FROM pageinfo WHERE pageID = '"+ PAGEid +"');
于 2013-03-18T11:48:38.363 に答える