예제 #1
0
        /// <summary>
        /// 检查序列化文件是否存在,如果存在就读取再保存到access数据库,不存在就new一个新的list
        /// </summary>
        private void CheckFileBuff()
        {
            try
            {
                //检查目录下是否有序列化文件,若存在就反序列化读取,不存在就创new一个新的list
                if (File.Exists(fileName))
                {
                    DataBase.DBHelp.FileName = DataBase.DBHelp.fileName;                        //指定数据库路径
                    BinaryFile.FileName      = fileName;                                        //指定序列化文件路径
                    //读取出序列化文件的内容到List表
                    recLst = BinaryFile.ReadBinary().ConvertAll(s => (Models.DataBaseRecord)s); //读取序列化文件内容到list
                    Models.DataBaseRecord rec     = recLst[0];                                  //获取出列表第一个参数项
                    List <string>         listTem = new List <string>();                        //实例化一个类属性让下面SQL语读出查找的项用来做判断

                    listTem = DataBase.CQServices.GetRecordSql(@"SELECT DataSheet.serialNumber
                                                            FROM DataSheet
                                                            WHERE(((DataSheet.serialNumber) = '" + rec.serialNumber + @"'))");

                    //判断数据库里有无重复编号,有的话就删除,没有就插入
                    if (listTem.Count > 0)
                    {
                        DataBase.CQServices.DeleteRecord(rec.serialNumber); //删除重复项
                    }
                    DataBase.CQServices.BulckInsert(recLst);                //向ACCESS数据库添加数据列表
                    File.Delete(fileName);                                  //删除序列化文件
                    recLst.Clear();                                         //清空数据列表
                }
                else
                {
                    recLst.Clear();
                }
            }
            catch (Exception ex)
            {
                CMessageBox.Show(ex.Message, "提示");
                return;
            }
        }