其他分享
首页 > 其他分享> > CodeGo.net>如何添加参数到WebMatrix Database.Query?

CodeGo.net>如何添加参数到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 Method Object []作为SQL参数传递,但是它们没有关于它的更多信息.

所以我有两个问题:

>如何创建对象[]?
>以这种方式添加参数是否可以防止黑客入侵,例如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已经关闭,但是他没有使用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注入,因为它总是将双引号引起来.

标签:webmatrix,asp-net-mvc-4,c
来源: https://codeday.me/bug/20191028/1951454.html