我已经创建了一个正常工作的登录表单。但我想做的是,在用户登录后,我需要将账号存储在某个地方,以便保存。
这是我的按钮点击事件方法
private void button1_Click(object sender, EventArgs e)
{
string accNumMain = "";
Menu m1 = new Menu();
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ATM_Database.accdb; Persist Security Info=False;";
OleDbDataReader dr = null;
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
try
{
conn.Open();
string query = "Select Customer_ID,Password from Customer where Customer_ID = '" + this.userBox.Text + "' and Password = '" + this.Password.Text + "'";
OleDbCommand cmd = new OleDbCommand(query, conn);
cmd.Parameters.AddWithValue("@Customer_ID ", this.userBox.Text);
cmd.Parameters.AddWithValue("@Password ", this.Password.Text);
dr = cmd.ExecuteReader();
if (dr.HasRows == true)
{
while (dr.Read())
{
accNumMain = userBox.Text;
Classes.AccSave AC1 = new Classes.AccSave(accNumMain);
MessageBox.Show("Welcome");
this.Hide();
m1.Show();
}
}
else
{
wrongEntry_Lable.Visible = true;
}
}
finally
{
Console.ReadLine();
if (dr != null)
{
dr.Close();
}
if (conn != null)
{
conn.Close();
}
}
}
}
我所做的是将上下文保存到一个新的类中,该类是:
class AccSave
{
string acc { get; set; }
public AccSave(string acc)
{
this.acc = acc;
}
}
}
我在从另一个类调用这个类以访问包含AccNum的字符串var时遇到问题
我的猜测是,您将AC1
的范围限制在创建它的块上,为什么不创建一个静态类来存储信息,而不必担心范围。
class AccSave
{
static string _acc;
public static string acc { get { return _acc; } set { _acc = value; } }
public static void clear()
{
_acc = "";
}
}
使用
AccSave.acc = "Your Text Here"; // Add Value
string temp = AccSave.acc; //Retrieve Value
AccSave.Clear(); //Clear Value
将public添加到类
public class AccSave{
}