2013-03-01 65 views
2

我想写一个查询来显示当前登录用户拥有的所有记录,但我有问题插入“userid”变量到字符串中?Webmatrix/Razor SQL查询 - Websecurity变量

@{ 
Layout = "~/_template1.cshtml"; 
var db = Database.Open("StayInFlorida"); 


var userid = WebSecurity.CurrentUserId; 
var premierproperty = "SELECT PropertyName, PropertyID FROM PropertyInfo WHERE OwnerID='userid'"; 
} 

<h1>Properties - Page coming soon</h1> 

@userid 

@foreach (var row in db.Query(premierproperty)){ 
@row.propertyname 
} 

任何想法?

回答

3

尝试这样的:

@{ 
    Layout = "~/_template1.cshtml"; 
    var db = Database.Open("StayInFlorida"); 
    var userid = WebSecurity.CurrentUserId; 
    var premierproperty = "SELECT PropertyName, PropertyID FROM PropertyInfo WHERE OwnerID = @0"; 
} 

<h1>Properties - Page coming soon</h1> 

@userid 

@foreach (var row in db.Query(premierproperty, userid)) 
{ 
    @row.propertyname 
} 
+0

工作的一个绝对的治疗,谢谢你这么多。 – Gavin5511 2013-03-02 11:14:32

+0

只是为了确认,如果我想在页面上运行另一个查询,我可以使用@ 1值做同样的事情吗?他们在什么顺序中有什么不同? – Gavin5511 2013-03-02 11:15:45

+0

您可以在单个查询中使用尽可能多的参数。它们应该被编号@ 0,@ 1,@ 2,...并且这些值以相同的顺序传递给Query方法。 – 2013-03-02 13:09:21