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;
    }

エラーは

null 参照に対して実行時バインドを実行できません

4

2 に答える 2

1

このエラーは、QuerySingleメソッド呼び出しの結果が null だったか、データベースに行が返されなかったことを示しています。動的プロパティにアクセスする前に、データが 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;
于 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 に答える