C# 单击一个按钮将创建两个事件
我需要创建一个按钮,使两个事件,并保存到数据库中(员工的到达和离开时间) 我需要做的第一次点击按钮将员工的到达时间保存到数据库中,第二次点击相同的按钮将保存员工的离开时间(当然不是有两个按钮) 我想我需要一种计数器来计算按钮点击次数,或者类似的东西,但我真的不知道如何编写这样的程序,所以如果你能帮我的话 这就是我目前所拥有的请注意,代码不起作用,所以除了我不知道如何编程之外,没有任何问题。多谢各位C# 单击一个按钮将创建两个事件,c#,database,connection,oledbconnection,oledbcommand,C#,Database,Connection,Oledbconnection,Oledbcommand,我需要创建一个按钮,使两个事件,并保存到数据库中(员工的到达和离开时间) 我需要做的第一次点击按钮将员工的到达时间保存到数据库中,第二次点击相同的按钮将保存员工的离开时间(当然不是有两个按钮) 我想我需要一种计数器来计算按钮点击次数,或者类似的东西,但我真的不知道如何编写这样的程序,所以如果你能帮我的话 这就是我目前所拥有的请注意,代码不起作用,所以除了我不知道如何编程之外,没有任何问题。多谢各位 int counter = 0; public void button1_Click(ob
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);
}
}
快速和肮脏的方式:
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
}
}
您可以创建一个bool来指示员工是否已打卡
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;
}
哦,行得通。准确地说,是两次;直到计数器变为3。我同意Grant的回答,但另外还更改了按钮的文本(如在“到达”和“离开”之间交替切换)以强调其当前功能并避免混淆。@elgonzo它在条件表达式中提供了数据类型不匹配。错误为-->cmd.ExecuteNonQuery()…datetime有问题。现在?@GrantWinney两人都在约会/Time@fkr,很抱歉,我没有查看您的全部代码。我的评论是专门针对您切换按钮功能的逻辑,而不是关于您处理数据库的代码。很抱歉造成混淆:)@GrantWinney它现在可以工作了,但它在两个不同ID下设置了日期…and日期设置为1990 lol-。-它给我条件表达式中的数据类型不匹配。错误为-->cmd.ExecuteNonQuery();…日期时间有问题。现在?它可能工作正常,但给我条件表达式中的数据类型不匹配。错误为-->cmd.ExecuteNonQuery();…日期时间有问题。现在?