如何给WebMatrix Database.Query 添加参数?

How to add parameters to WebMatrix Database.Query?

使用 Database.Query 使我的代码可读性 a huge improvement

String Select = 'sp_getAllUsers';
WebMatrix.Data.Database DB = WebMatrix.Data.Database.Open(MyConString);
var data = DB.Query(Select);

我想切换到非存储过程查询。 MSDN says there's an optional parameter to the Query MethodObject[] 可以作为 SQL 参数传递,但是他们没有关于它的任何进一步信息。

所以我有两个问题:

这是我试过的一个缩略版:

Select = "Select * From Users Where first_name = "Foo" AND last_name = "Bar"

// Like Javascript
Object[] params = {"first_name" : "Foo"}, {"last_name" : "Bar"};

// More Like What I think it will be
Object[] Params = (String Name = "first_name", String First_Name = "Foo");

var data = DB.Query(Select, params);

我看过的所有资料似乎都只参考了the old way. This close,但是他并没有使用Query方法的parameter参数

尝试使用这种语法:

string selectCommand = "sp_getAllUsers(@0, @1)";
// selectCommand = "Select * From Users Where first_name = @0 AND last_name = @1";
...
var data = DB.Query(selectCommand, "Foo", "Bar");

更多信息,请参见: http://www.aspnet101.com/2010/07/webmatrix-tutorial-working-with-data/

此外,使用参数将始终防止 SQL 注入,因为它总是双引号单引号。