webForumDet fria alternativet

The name 'U' does not exist in the current context

5 svar · 262 visningar · startad av silfver

silfverMedlem sedan apr. 200312 679 inlägg
#1

Vad är det som strular till det? Jag får följande felmeddelande:

Line 22:         else
Line 23:         {
[red][B]Line 24:             U = (User)Session["active"];[/B][/red]
Line 25:             if (U.UserName == Request.QueryString.Get("User"))
Line 26:             {

Och så här ser "hela" koden ut:

            U = (User)Session["active"];
            if (U.UserName == Request.QueryString.Get("User"))
            {
                Panel2.Visible = false;
                Panel1.Visible = true;
                Response.Write("Min sida");
            }

Några förslag? :)

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

En kvalificerad gissning är att du måste definiera U någonstans, t ex:

User U = null;
// Eller bara
User U;
silfverMedlem sedan apr. 200312 679 inlägg
#3

Jag definierar min User i min dataLayer.cs-fil:

    public User login(string userName, string password)
    {
        Conn = new OleDbConnection(ConnectionString);
        OleDbCommand cmd = new OleDbCommand();
        cmd.Connection = Conn;
        cmd.Parameters.Add (new OleDbParameter("@userName", userName));
        cmd.Parameters.Add(new OleDbParameter("@password", password));
        cmd.CommandText = "SELECT userID, userName, email, password, presentation FROM userInfo WHERE userName=@userName AND password=@password";

        Conn.Open();
        User u=null;
        try
        {
            OleDbDataReader dr = cmd.ExecuteReader();
            dr.Read();
            u = new User();
            u.userID = Convert.ToInt32(dr["userID"].ToString());
            u.userName = dr["userName"].ToString();
            u.password = dr["password"].ToString();
            u.email = dr["email"].ToString();
            u.presentation = dr["presentation"].ToString();
        }
        catch (Exception e){ }
        finally
        {
            Conn.Close();
        }
        return u;
    }

Och ifall jag skriver t.ex. User U; över koden så flyttas bara felmeddelandet ner en rad;

Compiler Error Message: CS0117: 'User' does not contain a definition for 'UserName'

VideMedlem sedan dec. 19998 577 inlägg
#4

Är det inte så att den skall heta userName och inte UserName?

silfverMedlem sedan apr. 200312 679 inlägg
#5

Du hade rätt nitro! :) Jag möblerade om min kod lite till följande:

    User U;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["active"] == null)
        {
            Response.Redirect("Login.aspx");

        }
        else
        {
            U = (User)Session["active"];
            if (U.userName == Request.QueryString.Get("User"))
            {
                
                Response.Write("Min sida");

            }
            else
            {
                
            }
        }
    }

Så nu fungerar det igen. Tack för hjälpen. ;)

silfverMedlem sedan apr. 200312 679 inlägg
#6

Vide skrev:

Är det inte så att den skall heta userName och inte UserName?

Jo, det var ett av felen också. ;) Men det hade jag hunnit rätta till. Tack ändå! :bire

123 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)