private void InputRecord() { List <CbIoRecord> mRecord = new List <CbIoRecord>(); try { foreach (string item in _FileNames) { if (!CRegex.IsEnterExitRecordFileName(Path.GetFileNameWithoutExtension(item))) { continue; } this.Invoke(new EventHandler(delegate { l_Title.Text = string.Format("正在导入“{0}”", Path.GetFileNameWithoutExtension(item)); pBar.PerformStep(); })); using (TextFieldParser tfp = new TextFieldParser(item, Encoding.GetEncoding("gb2312"))) { tfp.Delimiters = new string[] { "," };//确认分隔符 tfp.TextFieldType = FieldType.Delimited; int number = 0; int state = 0; int count = 0; while (!tfp.EndOfData) { string[] str = tfp.ReadFields();//读取行 if (str.Length >= 3) { count++; //888883,000000,20140927151922 //组合Sql语句 CbIoRecord record = new CbIoRecord(); record.DeviceNumber = number; record.IOTime = DateTime.ParseExact(str[2], "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture); record.IOState = state;//0进 1出 if (str[0] == "FFFFFF" && str[1] == "FFFFFF") { string[] str2 = tfp.ReadFields(); if (str2[0] == "FFFFFF" && str2[1] == "FFFFFF") { } else if (str2[0] == "FFFFFF")//车牌识别卡 { record.MasterCardNumber = str2[1]; } else //IC卡 { string icnumber = str2[0] + str2[1]; icnumber = icnumber.Remove(0, 4); record.MasterCardNumber = icnumber; } record.SubCardNumber = str2[2]; } else { record.MasterCardNumber = str[0]; record.SubCardNumber = str[1]; } mRecord.Add(record); } else { if (str[0].Contains("!!")) { number = Utils.StrToInt(str[0].Substring(10, 2), 0); state = Utils.StrToInt(str[0].Substring(12, 2), 0); } } } } } this.Invoke(new EventHandler(delegate { l_Title.Text = "正在保存数据"; Dbhelper.Db.Insert <CbIoRecord>(mRecord.ToArray()); tInputRecord = null; this.DialogResult = DialogResult.OK; })); } catch (Exception ex) { CustomExceptionHandler.GetExceptionMessage(ex); MessageBox.Show("导入失败错误数据:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { tInputRecord = null; Close(); } }