예제 #1
0
        private void lbImportRegForm_Click(object sender, EventArgs e)
        {
            var selectedRow = dataGridViewX1.SelectedRows[0];

            if (selectedRow == null)
            {
                return;
            }
            var matchId = selectedRow.Cells[0].Value.ToString();

            var selectedFolder = string.Empty;
            FolderBrowserDialog folderBrowser = new FolderBrowserDialog();

            folderBrowser.Description = "请选择一个文件夹,确认后会将文件夹内所有报名文件导入系统";
            if (folderBrowser.ShowDialog() == DialogResult.OK)
            {
                selectedFolder = folderBrowser.SelectedPath;
            }

            if (string.IsNullOrWhiteSpace(selectedFolder))
            {
                return;
            }

            var root       = new DirectoryInfo(selectedFolder);
            var files      = root.GetFiles();
            var filesCount = files.Count(); // 获取文件数量

            // 读取文件,将数据写入到数据库中
            var allAthletes = new List <AthleteModel>();
            var allOthers   = new List <OthersModel>();

            foreach (var file in files)
            {
                try
                {
                    var result = ExcelHelperImport.GetFileInfo(file, matchId);
                    allAthletes.AddRange(result.Athletes);
                    allOthers.AddRange(result.Others);
                }
                catch (Exception ex)
                {
                    MessageBox.Show($"{file.FullName} \n 文件异常,请检查是否被打开或者文件是否符合导入格式。 Exception:{ex}");
                    return;
                }
            }

            // 将所有的运动员信息存入到数据库中
            AthletesDAL.InsertBatch(allAthletes);
            OthersDAL.InsertBatch(allOthers);

            this.lbImportRegForm.Text = "重新导入报名表(已导入)";

            MessageBox.Show($"所有报名表已经导入成功!共{filesCount}个文件。");
        }