我编写了一个使用与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;
}
错误是
无法对空引用执行运行时绑定
答案 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