如何将voterid
存储到全局变量中,以便在其他表单中使用它?我将使用此voterid
来检查选民是否已经投票。
MessageBox.Show("Welcome!");
OleDbCommand comd1 = new OleDbCommand();
comd1.Connection = connection;
comd1.CommandText = "SELECT VoterID FROM tbl_voter where Uname='" +
txt_user.Text + "' and Pword='" + txt_pass.Text + "'";
voterid = Convert.ToString(comd1.ExecuteScalar());
MessageBox.Show(voterid);
connection.Close();
connection.Dispose();
this.Hide();
vote form3 = new vote();
form3.ShowDialog();
答案 0 :(得分:1)
如果我们谈论的是Windows窗体应用程序,那么" global"你的意思是"在整个过程中很常见,"然后你可以使用static variable。
在这个例子中,我创建了一个特殊的类来保存静态变量,并声明一个字段和一个可用于程序的属性,并且在整个过程中只保留一个值。
static class GlobalVariables
{
static public string SomeVariable { get; set ; } //As a property
static public string SomeOtherVariable; //As a field
}
请注意,如果您的程序是多线程的,那么将关键部分放在静态变量周围可能是个好主意,如下所示:
static class GlobalVariables
{
static private string LockObject = new Object();
static private string _someVariable;
static public string SomeVariable
{
get
{
lock(LockObject) { return _someVariable; }
}
set
{
lock(LockObject) { _someVariable = value; }
}
}
}
答案 1 :(得分:0)
应用程序状态属于应用程序状态对象。 WinForms应用程序没有其中一个,但您可以创建一个AppState类并将一个实例放在Program类的静态属性中。然后,您可以定义您喜欢的任何全局状态作为AppState的强类型属性,并从程序中的任何位置引用它们Program.AppState.MyGlobalStronglyTypedValue
如果需要保持应用状态,可以将(de)序列化逻辑放在AppState类中。