0

这是我正在尝试使用的代码

@{
    var db = Database.Open("StarterSite");
    var sqlquery = "SELECT Dep FROM UserProfile WHERE Email = @0";
  }

@if(db.Query(sqlquery,WebSecurity.CurrentUserName) = "Quebec")
{
   Response.Redirect("~/Members/Quebec/Quebec");
            return;
}
else if(db.Query(sqlquery,WebSecurity.CurrentUserName) = "Laval")
{
    Response.Redirect("~/Members/Laval/Laval");
                return;
}

它给了我一个 CS0131 错误......我做错了什么?

4

1 回答 1

0

使用QuerySingle并记住,在 C# 中,测试相等性的运算符是==,而不是=(这是赋值运算符):

@{
    var db = Database.Open("StarterSite");
    string sqlquery = "SELECT Dep FROM UserProfile WHERE Email = @0";
    string result = (string)db.QuerySingle(sqlquery, WebSecurity.CurrentUserName);
}

@if (result == "Quebec")
{
    Response.Redirect("~/Members/Quebec/Quebec");
}
else if (result == "Laval")
{
    Response.Redirect("~/Members/Laval/Laval");
}

如果您对列没有唯一约束,Email那么您可以使用该Query方法,但例如获得第一个结果(使用FirstOrDefault)。但这实际上取决于您的特定数据库设计。

于 2013-08-06T21:12:10.440 回答