我需要创建一个按钮来生成两个事件并将其保存到数据库中(员工的到达和离开时间)。
我需要做什么 第一次点击按钮将员工到达的时间保存到数据库中,第二次单击相同的按钮可以保存员工的离开时间(当然不是有 2 个按钮)
我想我需要某种计数器来计算按钮点击次数或类似的东西,但我真的不知道如何像这样编程,所以如果你能帮我。
这就是我到目前为止所拥有的请注意,代码不起作用,所以除了我不知道如何编程之外没有问题。谢谢
int counter = 0;
public void button1_Click(object sender, EventArgs e)
{
counter++;
try
{
if (counter == 1)
{
OleDbConnection myConnection= new OleDbConnection("\CONNECTION PATH");
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = myConnection;
cmd.CommandText = "Insert into Weekdays (Arrival)" + "values(@Arrival)";
cmd.Parameters.AddWithValue("@Arrival", DateTime.Now);
myConnection.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Arrival added.");
myConnection.Close();
}
else if (counter == 2)
{
OleDbConnection myConnection= new OleDbConnection("\CONNECTION PATH");
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = myConnection;
cmd.CommandText = "Insert into Weekdays (Departure)" + "values(@Departure)";
cmd.Parameters.AddWithValue("@Departure", DateTime.Now);
myConnection.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Departure added.");
myConnection.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
您可以创建一个布尔值来指示员工是否打卡。
bool clockedIn = false;
public void button1_Click(object sender, EventArgs e)
{
if (!clockedIn)
{
// employee just arrived - log arrival time
}
else
{
// employee leaving - log departure time
}
clockedIn = !clockedIn;
}
快速而肮脏的方式:
private void button1_Click(object sender, EventArgs e)
{
if (button1.Tag == null)
{
button1.Tag = "toogled";
// run event 1
}
else
{
button1.Tag = null;
// run event 2
}
}