2

我编写了一个使用与 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;
    }

错误是

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

4

2 回答 2

1

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

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;
于 2012-10-26T13:56:26.000 回答
0

这简单。null首先检查

var obj=ObjectInfo.ReferenceEquals(Request["cats"],null);
if is obj == true then Execute Query
于 2013-02-04T02:44:09.857 回答