[英]How to set a selected cell value ifrom a datagridview and use it to insert in a database?
我有一個datagridview,我想從其中選擇要插入表格的Employee Id值。我有兩個表,Employee具有雇員id(主鍵),雇員姓名和Attendance具有雇員id(FK),日期,預期時間,進入時間和時間狀態。 我想插入一個由員工ID完成的員工出勤記錄。 因此,如果我選擇單元格(員工ID),則將為該特定Employee插入。
這是設置值的代碼:
private void button2_Click(object sender, EventArgs e)
{
Attendance att = new Attendance();
int id;
try
{
att.SetEmployeeId(id = Convert.ToInt32(dataGridView1.CurrentCell));
att.SetWorkDate(work_date_picker.Text);
att.SetExpectedTime(expected_time_picker.Text);
att.SetTimeIn(time_in_picker.Text);
Database database = new Database();
database.OpenConnection();
database.AddAttendancetable(att);
database.CloseConnection();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
this.Close();
}
這是我的數據庫操作代碼:
public bool AddAttendanceToTable(Attendance rowtosave, SqlConnection conn,
SqlCommand cmd)
{
Trace.WriteLine("saving to table");
cmd.CommandText = "Insert Into Attendance
(emp_id,work_date,expected_time,time_in)
values(@emp_id,@work_date,@expected_time,@time_in)";
cmd.Parameters.AddWithValue("@emp_id", rowtosave.GetEmployeeId());
cmd.Parameters.AddWithValue("@work_date", rowtosave.GetWorkDate());
cmd.Parameters.AddWithValue("@expected_time",
rowtosave.GetExpectedTime());
cmd.Parameters.AddWithValue("@time_in", rowtosave.GetTimeIn());
try
{
cmd.Connection = conn;
cmd.ExecuteReader();
MessageBox.Show("Data Added Successfully");
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
return true;
}
void AddAttendancetable(Attendance
attendance)
{
AddAttendance addAttendance = new
AddAttendance();
addAttendance.AddAttendanceToTable
(attendance,conn, cmd);
}
我遇到了無法將datagridview textboxcell強制轉換為類型system的錯誤。
這對我有用
if (dataGridView1.SelectedCells.Count >0)
{
int selectedrowindex = dataGridView1.SelectedCells[0].RowIndex;
DataGridViewRow selectedRow = dataGridView1.Rows[selectedrowindex];
att.SetEmployeeId(id = Convert.ToInt32(selectedRow.Cells["emp_id"].Value));
att.SetWorkDate(work_date_picker.Text);
att.SetExpectedTime(expected_time_picker.Text);
att.SetTimeIn(time_in_picker.Text);
Database database = new Database();
database.OpenConnection();
database.AddAttendancetable(att);
database.CloseConnection();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.