flamingruin
flamingruin

Reputation: 1

How to insert date time in database?

I'am making a time attendance system and I don't know how to store datetime in database. I really need some help with my system if anyone has any code for time attendance please share your Code a little help would do thanks..

Here is my Code:

con = newSqlConnection(@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");


        dt = new DataTable();
        cmd = new SqlCommand(@"SELECT EmpID FROM data WHERE EmpID='" + Code.Text + "'", con);
        con.Open();


        sdr = cmd.ExecuteReader();
        int count = 0;
        while (sdr.Read())
        {
            count = count + 1;
        }
        con.Close();
        if (count == 1)
        {
            con.Open();
            DateTime dtn = DateTime.Now;
            dtn = Convert.ToDateTime(DateTime.Now.ToString("hh:mm"));
            string query = @"INSERT INTO Time (TimeIn) Values ('" + dtn + "')";
            cmdd = new SqlCommand(query, con);
            sdr = cmdd.ExecuteReader();
            sdr.Read();
            dataGridView.DataSource = databaseDataSet.Time ;
            con.Close();
            MessageBox.Show("Verify Ok");

        }
        else
        {
            MessageBox.Show("Please Try Again");
        }

Upvotes: 0

Views: 834

Answers (1)

Dmitrii Bychenko
Dmitrii Bychenko

Reputation: 186833

Do not use ExecuteReader() but ExecuteNonQuery(); add query parameters, do not modify query text, technically it could be something like that:

...
if (count == 1) {
  ...
  DateTime dtn = DateTime.Now;    

  string query = 
    @"insert into Time (
        TimeIn) 
      values (
        @TimeIn)"; // <- query parameter instead of query text modification

  using (var query = new SqlCommand(query, con)) {
    // bind query parameter with its actual value 
    query.Parameters.AddWithValue("@TimeIn", dtn);
    // Just execute query, no reader
    query.ExecuteNonQuery();
  }

  ...

However, table Time as it appears in the question looks very strange, hardly does it contain TimeIn field only.

Upvotes: 2

Related Questions