Ali Khan Ответов: 1

Как добавить настоящее отсутствующее значение в новый столбец с помощью условия во время выполнения в datagridview windows form C#


I want to add attendance condition on runtime in datagridview.. for example if time is <= 09:45:00 then show present else if time is null then show absent in P/A column and then add in database using datagridview windows form c#




изображение ( https://i.stack.imgur.com/SdF5d.png )

Что я уже пробовал:

   try
{
              SqlCommand ucd = new SqlCommand("indiviual_attendence", ConnectionString.Getconnection());
              ucd.CommandType = CommandType.StoredProcedure;
              ucd.Parameters.Add("@id", SqlDbType.Int).Value = 2;
              ucd.Parameters.Add("@empcode", SqlDbType.NVarChar).Value = value;
              SqlDataAdapter sda = new SqlDataAdapter(ucd);
              dt = new DataTable();
              sda.Fill(dt);
              if (dt.Rows.Count > 0)
              {
                  textBox2.Text = dt.Rows[0][0].ToString();
              }
              ConnectionString.closeconnection();
              if (textBox2.Text != "")
              {
                  cmd = new SqlCommand("indiviual_attendence", ConnectionString.Getconnection());
                              cmd.CommandType = CommandType.StoredProcedure;
                             cmd.Parameters.Add("@id",SqlDbType.Int).Value = 3;
                             cmd.Parameters.Add("@empcode",SqlDbType.NVarChar).Value = "%"+value;
                  SqlDataAdapter sd = new SqlDataAdapter(cmd);
                  dt = new DataTable();
                  sd.Fill(dt);
                  if (dt.Rows.Count > 0)
                  {
                      dataGridView1.DataSource = dt;
                      dataGridView1.Columns[0].HeaderText = "Code";
                      dataGridView1.Columns[1].HeaderText = "Name";
                      dataGridView1.Columns[2].HeaderText = "Department";
                      dataGridView1.Columns[3].HeaderText = "Year";
                      dataGridView1.Columns[4].HeaderText = "Month";
                      dataGridView1.Columns[5].HeaderText = "Day";
                      dataGridView1.Columns[6].HeaderText = "Time";
                      dataGridView1.Columns[7].HeaderText = "Status";
                      dataGridView1.Columns[8].HeaderText = "EMP/MACH-CODE";  
                      dataGridView1.Columns[9].HeaderText = "Attendance_id";
                      dataGridView1.Columns[9].Visible = false;
                     dataGridView1.Columns[10].HeaderText = "P/A";
                     // dataGridView1.Columns["Attendance_id"].Visible = false;
                      dataGridView1.AllowUserToAddRows = false;
                      dataGridView1.AllowUserToResizeColumns = false;
                      dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control;
                      this.dataGridView1.DefaultCellStyle.BackColor = Color.GhostWhite;

                  }

                  ConnectionString.closeconnection();
              }
          }
          catch (Exception ex)
          {
              MessageBox.Show(ex.Message);
              ConnectionString.closeconnection();
          }

    }

OriginalGriff

И что же?
Что он делает такого, чего вы не ожидали, или не делает того, что вы сделали?
Где ты застрял?
Какая помощь вам нужна?

Ali Khan

спасибо проблема решена

Mike V Baker

Я вижу здесь код для заполнения таблицы из источника данных. Я не вижу SQL для SP "individual_attendance". есть ли там левое внешнее соединение, чтобы студенты входили, но будет NULL для "Attendance_id", если они не зарегистрировались? В этом случае P/A будет Attendance_id == null ? "Отсутствует" : "Присутствует"

Ali Khan

спасибо проблема решена

1 Ответов

Рейтинг:
2

Gerry Schmitz

"Производные" данные обычно не хранятся в базе данных; они вычисляются только во время выполнения; создайте "вычисляемый" столбец с помощью выражения:

объект DataColumn.Свойство Выражения (System.Data)[^]


Ali Khan

спасибо проблема решена