问题 会话变量

诺斯福德

新成员
已加入
2017年1月17日
留言内容
4
编程经验
10+
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Web;

namespace test_1
{
    public partial class frmLogin : Form
    {        

        public frmLogin()
        {
            InitializeComponent();
        }
        string cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\test.accdb";
        private void button1_Click(object sender, EventArgs e)
        {
            if (Username.Text == "" ||Password.Text == "")
            {
                MessageBox.Show("Please provide UserName and Password");
                return;
            }
            try
            {
                OleDbConnection con = new OleDbConnection(cs);
                
                OleDbCommand cmd = new OleDbCommand("Select * from Admin where [email protected] and [email protected]", con);

                cmd.Parameters.AddWithValue("@username", Username.Text);
                cmd.Parameters.AddWithValue("@password", Password.Text);
                con.Open();
                OleDbDataAdapter adapt = new OleDbDataAdapter(cmd);
                
                DataSet ds = new DataSet();
                adapt.Fill(ds);
                con.Close();
                int count = ds.Tables[0].Rows.Count;
                //If count is equal to 1, than show frmMain form
                if (count == 1)
                {
                    MessageBox.Show("Login Successful!");
                   
                    Session["LoggedIn"] = "Yes";
                   
                    this.Hide();
                    frmMain fm = new frmMain();
                    fm.Show();
                }
                else
                {
                    MessageBox.Show("Login Failed!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }
    }
}




我是C#的新手,已经创建了一个登录表单,但它不喜欢Session ["LoggedIn"] = "Yes";无法识别会话或 HttpContext.Current。会议。我如何将值存储在会话变量中?
谢谢
 

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,076
地点
挪威
编程经验
10+
使用的会话是无状态的ASP.Net环境,这意味着显示的每个页面基本上都是一个全新的开始,默认情况下,大多数用户交互都会启动一个新的服务器请求。这意味着ASP.Net具有维护状态的特殊需求,Session是其中的一种,用于存储整个应用程序中的值,但与其他用户分开。在Windows窗体中,在大多数情况下不需要这种特殊的安排,并且您在这里都找不到ASP.Net状态管理,Session的最相似功能是静态类(以便于跨应用程序轻松访问)或应用程序中的属性。用户设置(以便在整个应用程序之间轻松访问和/或在应用程序运行之间进行存储)。
静态类和静态类成员(C#编程指南)
在C#中使用设置

通常,您可以并且应该在没有这种存储的情况下进行操作,而是在所使用的不同对象之间传递值,例如,您可以在此处传递值"yes"到frmMain类实例的属性。
 
最佳 底部