DB在WebMatrix的类中选择

时间:2012-10-26 12:24:39

标签: asp.net razor webmatrix

我编写了一个使用与WebMatrix数据库连接的类。我可以大大地插入,更新查询,但我有选择查询的问题。 我无法将Razor 动态变量分配给我的类型指定变量。

如何在通常的c#类中使用WebMatrix数据库?

我的课程代码:

    public bool verify_session()
    {
        if (get_user_id() > 0)
    {
        return true;
    }

        if (HttpContext.Current.Request.Cookies["session_id"] != null)
    {
        var db = Database.Open("studia_sesje");
        var data = db.QuerySingle("SELECT session_id, user_id FROM sessions WHERE session_id = '" + HttpContext.Current.Request.Cookies["session_id"] + "'");

        _session_id = (string)data.session_id;
        _user_id = (int)data.user_id;

        return true;
    }

    return false;
    }

错误是

  

无法对空引用执行运行时绑定

2 个答案:

答案 0 :(得分:1)

错误表明您的QuerySingle方法调用的结果为null,或者数据库中没有返回任何行。在尝试访问动态属性之前,您应该检查数据是否为空:

var session_id = HttpContext.Current.Request.Cookies["session_id"];
var sql = "Select session_id, user_id From Sessions Where session_id = @0";
var data = db.QuerySingle(sql, session_id);
if(data != null){
    _session_id = data.session_id; //bit pointless, you already have that value
    _user_id = data.user_id; // no need to cast to int
    return true;
}
return false;

答案 1 :(得分:0)

这很容易。首先检查{/ 1}}

null