void _worker_DoWork(object sender, DoWorkEventArgs e)
 {
     _StudQuizDataList = _UDTTransfer.GetStudQuizDataByStudentID(PrimaryKey);
 }
        private void StudQuizDataForm_Load(object sender, EventArgs e)
        {
            // 取得學生資料
            StudentRecord studRec = Student.SelectByID(_StudentID);

            _StudQuizDataList = _UDTTransfer.GetStudQuizDataByStudentID(studRec.ID);

            // log 學生資訊用
            _LogStudentName = Utility.ConvertString1(studRec);


            if (_StudQuizData == null)
            {
                _StudQuizData = new DAO.UDT_StudQuizDataDef();
            }

            if (_EditMode == EditMode.Edit)
            {
                // 取得測驗名稱
                foreach (DAO.UDT_QuizDef data in _AllQuiz.Where(x => x.UID == _StudQuizData.QuizID.ToString()))
                {
                    _qdd = data;
                }

                if (_qdd == null)
                {
                    FISCA.Presentation.Controls.MsgBox.Show("無法解析測驗內容.");
                    return;
                }
            }

            if (studRec != null)
            {
                string str = "";
                if (studRec.Class != null)
                {
                    str += studRec.Class.Name + " ";
                }

                str += studRec.Name + " ";
                str += studRec.StudentNumber;
                str  = " (" + str + ")";
                if (_EditMode == EditMode.Edit)
                {
                    this.Text = _qdd.QuizName + str;
                }
                else
                {
                    this.Text = str;
                }
            }

            // 當編輯模式,測驗名稱,不能修改
            if (_EditMode == EditMode.Edit)
            {
                cbxQuizName.Text    = _qdd.QuizName;
                cbxQuizName.Enabled = false;

                if (_StudQuizData.ImplementationDate.HasValue)
                {
                    dtImplementationDate.Value = _StudQuizData.ImplementationDate.Value;
                }

                if (_StudQuizData.AnalysisDate.HasValue)
                {
                    dtAnalysisDate.Value = _StudQuizData.AnalysisDate.Value;
                }

                dgQuizData.Rows.Clear();

                int rowIdx = 0;
                dgQuizData.Columns[colDataField.Index].ReadOnly = false;

                XElement elmContent = Utility.ConvertStringToXelm1(_StudQuizData.Content);
                if (elmContent != null)
                {
                    // 沒有在試別欄位加入
                    List <string> fieldList = (from data in elmContent.Elements("Item") select data.Attribute("name").Value).ToList();
                    foreach (string str in fieldList)
                    {
                        if (!_RowNameList.Contains(str))
                        {
                            _RowNameList.Add(str);
                        }
                    }
                    // 依試別欄位順序排序
                    foreach (string str in _RowNameList)
                    {
                        foreach (XElement elm in elmContent.Elements("Item").Where(x => x.Attribute("name").Value == str))
                        {
                            rowIdx = dgQuizData.Rows.Add();
                            if (elm.Attribute("name") != null)
                            {
                                dgQuizData.Rows[rowIdx].Cells[colDataField.Index].Value = elm.Attribute("name").Value;
                            }
                            if (elm.Attribute("value") != null)
                            {
                                dgQuizData.Rows[rowIdx].Cells[colDataValue.Index].Value = elm.Attribute("value").Value;
                            }
                        }
                    }
                }
                dgQuizData.Columns[colDataField.Index].ReadOnly = true;
            }
            _LogTransfer.Clear();
            LogData();
        }