Example #1
0
        private void StartInportBtn_Click_1(object sender, RoutedEventArgs e)
        {
            string table = this.ExcelTable.Text.Trim();
            string sql = string.Format("select * from [{0}]", table);
            SwitchTip.Text = "查询依赖信息";

            //try
            //{
                DataTable dt = SqlExcel.ExcuteSelect(this.ExcleFile.Text.Trim(), sql);
                int rowsCount = dt.Rows.Count;
                SwitchTip.Text = "共"+rowsCount+"条记录";
                SwitchProgressBar.Value = 10;
                JszxDataManager jszxDataManager = new JszxDataManager();
                //获取当前学期id
                SwitchTip.Text = "获取当前学期";
                SwitchProgressBar.Value = 40;
                int termID = jszxDataManager.GetCurrentTerm().TermID;
                //获取实验室列表
                SwitchTip.Text = "获取实验室列表";
                SwitchProgressBar.Value = 70;
                List<labs_tb> labs = jszxDataManager.GetLabs_tbList();
                #region 开始导入
                SwitchProgressBar.Value = 100;
                SwitchTip.Text = "获取实验室列表";
                SwitchProgressBar.Maximum = rowsCount;
                SwitchProgressBar.Value = 0;
                using (TransactionScope scope = new TransactionScope())
                {
                    for (int i = 0; i < rowsCount; i++)
                    {
                        SwitchTip.Text = "导入第" + (i + 1).ToString() + "条记录";
                        #region 保存课程信息
                        courses_tb course = new courses_tb();
                        //格式化第i行
                        DataRow dr = FormatDataRow(dt, i);
                        course.CrsName = dr["课程名称"].ToString();
                        //crsTeacher 教师姓名
                        course.CrsTeacher = dr["任课教师"].ToString();
                        //crsClass 上课班级
                        course.CrsClasses = dr["班级"].ToString();
                        //crsHour上机学时
                        course.CrsHour = Convert.ToInt32(dr["上机学时"]);
                        //crsTimes 上机次数
                        course.CrsTimes = Convert.ToInt32(dr["上机次数"]);
                        //crsNum 上机人数
                        course.CrsNum = Convert.ToInt32(dr["人数"]);
                        //crsConf  实验环境配置要求
                        course.CrsConf = dr["对软硬件环境的要求"].ToString();
                        //备注
                        course.CrsRemark = dr["备注"].ToString();

                        jszxDataManager.jszxEntity.courses_tb.Add(course);
                        jszxDataManager.jszxEntity.SaveChanges();
                        int courseID = course.CrsID;
                        #endregion
                        #region 保存课程安排
                        #region 处理实验室
                        //获取该条记录对应的实验室,根据每条记录的上机地点是否包含该实验室关键字确定是否包含实验室
                        string lab = dr["上机地点"].ToString();
                        List<int> courseLabs = new List<int>();
                        foreach (var drlab in labs)
                        {
                            if (lab.Contains(drlab.LabKeyWord))
                            {
                                courseLabs.Add(drlab.LabID);
                            }
                        }

                        if (courseLabs.Count == 0)
                        {
                            //此条记录没有对应的实验室,继续循环下一条
                            continue;
                        }

                        #endregion
                        #region 处理周次
                        string weekStr = dr["周"].ToString();

                        int isDouble = 0;
                        if (weekStr.Contains("双"))
                        {
                            isDouble = 2;
                        }
                        else if (weekStr.Contains("单"))
                        {
                            isDouble = 1;
                        }
                        List<int> weeks = GetListOfStr(weekStr, isDouble);
                        #endregion

                        #region 处理工作日
                        string weekdayStr = dr["星期"].ToString();
                        List<int> weekdays = GetListOfStr(weekdayStr, 0);
                        #endregion

                        #region 处理节次
                        string classStr = dr["节"].ToString();
                        List<int> classes = GetListOfStr(classStr, 0);
                        #endregion

                        #region 循环导入

                        //schtb.
                        foreach (int wk in weeks)
                        {
                            //周

                            foreach (int wkd in weekdays)
                            {
                                //工作日
                                foreach (int lb in courseLabs)
                                {
                                    //实验室
                                    foreach (int cls in classes)
                                    {
                                        schedule_tb schtb = new schedule_tb();
                                        schtb.ScdCrs = courseID;
                                        schtb.ScdTerm = termID;
                                        schtb.ScdWeek = (sbyte)wk;
                                        schtb.ScdWeekDay = (sbyte)wkd;
                                        schtb.ScdLab = lb;
                                        //节次
                                        schtb.ScdClass = cls;
                                        //保存至数据库
                                        jszxDataManager.jszxEntity.schedule_tb.Add(schtb);
                                        jszxDataManager.jszxEntity.SaveChanges();
                                    }
                                }
                            }
                        }
                        #endregion

                        #endregion
                        SwitchProgressBar.Value = i + 1;
                    }
                    scope.Complete();
                }
                #endregion
                SwitchTip.Text = "导入完成,正在保存数据";
                SwitchProgressBar.IsIndeterminate = true;

            //}
            //catch (Exception ex)
            //{
            //    MessageBox.Show("出现错误:\n"+ex.Message);
            //}
        }
Example #2
0
        /// <summary>
        /// 获取实验室列表
        /// </summary>
        /// <returns>实验室列表</returns>
        public List<Lab> GetLabList()
        {
            List<Lab> labs = new List<Lab>();
               using (JszxDataManager jszxDateManage = new JszxDataManager())
               {
               List<labs_tb> lab_tbs = jszxDateManage.GetLabs_tbList();

               foreach (labs_tb lb_tb in lab_tbs)
               {
                   Lab lb = new Lab();
                   lb.LabAddr = lb_tb.LabAddr;
                   lb.LabAdmin = lb_tb.LabAdmin;
                   lb.LabID = lb_tb.LabID;
                   lb.LabIP = lb_tb.LabIP;
                   lb.LabKeyWord = lb_tb.LabKeyWord;
                   lb.LabName = lb_tb.LabName;

                   labs.Add(lb);
               }
               }
               return labs;
        }