如何注册进入和退出时间

时间:2016-04-03 11:08:11

标签: c# sql

有两张桌子。 第一个表注册个人信息,节省进入和退出第二个表的时间

第一个表格字段为:ID, National code, name

第二个表字段:ID, National code, entering time, exiting time。国家代码外键。

当用户输入他们的国家代码时。记录时间,第二次输入国家代码时,退出时间记录。 但问题是当用户在一天中进入和退出几次时,另一个则无效。

我使用以下代码:

if (txt_code.Text != "")
{
    SqlCommand cmdceck = new SqlCommand("select * from tb where code ='" + txt_code.Text + "' ", con);
    SqlDataReader dr;

    con.Open();
    dr = cmdceck.ExecuteReader();

    if (dr.Read())
    {
        p.id= dr["id"].ToString();
        p.code = dr["code"].ToString();
        p.date_enter = dr["date_enter"].ToString();
        p.date_exit = dr["date_exit"].ToString();
    }

    con.Close();

    //
    if (p.date_enter == "" && p.date_exit == "" )
    {
        SqlCommand cmd = new SqlCommand("UPDATE tb set date_enter=@date_enter WHERE code='" + txt_code.Text + "'", con);
        cmd.Parameters.Add("date_enter", SqlDbType.NVarChar).Value = lb_date_time.Text;

        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

        fill();
    }
    //
    else if (p.date_enter != "" && p.date_exit == "" )
    {
        SqlCommand cmd = new SqlCommand("UPDATE  tb set date_exit=@date_exit  WHERE code='" + txt_code.Text + "'", con);
        cmd.Parameters.Add("date_exit", SqlDbType.NVarChar).Value = lb_date_time.Text;

        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

        fill();
    }
    //
    else if (p.date_enter != "" && p.date_exit != "" )
    {
        SqlCommand cmd = new SqlCommand("Insert into  tb  (code,date_enter) values (@code,@date_enter) ", con);

        cmd.Parameters.Add("code", SqlDbType.NVarChar).Value = txt_code.Text;
        cmd.Parameters.Add("date_enter", SqlDbType.NVarChar).Value = lb_date_time.Text;

        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

        fill();
    }

0 个答案:

没有答案