출석 시스템을 만들고 격자보기를 사용하여 데이터를 삽입하려고합니다. 그리드에는 많은 행이있을 수 있습니다. 모든 일이 잘되고 데이터도 잘 들어갑니다. 그러나 각 행을 확인하려면 for
루프를 사용하고 있습니다. 이렇게하면 행 수가 증가 할 때 성능이 상당히 느려집니다. 또한 행 수가 늘어 나면 왕복 횟수가 늘어납니다.'for'루프를 사용하지 않고 gridView에 여러 행을 삽입하십시오.
아무에게도 더 좋은 해결책을 제공 할 수 있습니까?
나는 유 모두에 따라 내 코드를 수정해야 .....하지만 지금 문제는 코드 만 괜찮 이것보다 다른 그리드를 여러 번의 마지막 행을 ...... 삽입되어 발생할 수 있습니다.
MySqlDataAdapter myworkdatta = myworkdatta = new MySqlDataAdapter("SELECT CID,EID,TID,ATTENDENCE FROM EMPLOYEEATT ORDER BY AID DESC LIMIT 1", conn);
DataSet myworkdsatt = new DataSet();
myworkdatta.Fill(myworkdsatt, "EMPLOYEEATT");
int i;
for (i = 0; i < emplist_gv.Rows.Count; i++)
{
string tid = emplist_gv.Rows[i].Cells[6].Value.ToString();
string eid = emplist_gv.Rows[i].Cells[0].Value.ToString();
string atid = emplist_gv.Rows[i].Cells[7].Value.ToString();
MySqlCommand cmdwk = new MySqlCommand("INSERT INTO EMPLOYEEATT (CID,EID,TID,ATTENDENCE) VALUES (@cid,@eid,@tid,@attendence)", conn);
MySqlParameter spcidatt = new MySqlParameter("@cid", calid);
MySqlParameter speid = new MySqlParameter("@eid", eid);
MySqlParameter sptid = new MySqlParameter("@tid", tid);
MySqlParameter spattendence = new MySqlParameter("@attendence", atid);
cmdwk.Parameters.Add(spcidatt);
cmdwk.Parameters.Add(speid);
cmdwk.Parameters.Add(sptid);
cmdwk.Parameters.Add(spattendence);
myworkdatta.InsertCommand = cmdwk;
DataRow drowk = myworkdsatt.Tables["EMPLOYEEATT"].NewRow();
drowk["CID"] = calid;
drowk["EID"] = eid;
drowk["TID"] = tid;
drowk["ATTENDENCE"] = atid;
myworkdsatt.Tables["EMPLOYEEATT"].Rows.Add(drowk);
}
myworkdatta.Update(myworkdsatt, "EMPLOYEEATT");
이동 루프 전에 선택하고, 루프 후 루프 및 업데이트 테이블 내부 테이블의 변경 :
곧, 코드 블록과 같을 것이다. 루프를 한 번 반복하는 동안 2 번 선택하고 데이터를 삽입하는 것은 좋지 않습니다. – Reniuz
Select 문은 마지막 행 ID를 가져오고 일반 exp로 1 씩 증가하기 때문에 필요합니다. – Aaraadhana
나는 .....에 따라 코드를 수정했다. 그러나 이제는 그리드의 마지막 행을 여러 번 삽입하는 문제가 발생했다.이 외에도 코드는 괜찮다. – Aaraadhana