您的位置:首页 > 其它

数据去重复与保存

2019-04-28 09:16 381 查看
开发工具与关键技术:VS    C#
作者:宋永烨
撰写时间:2019/4/23

在将文档自身去除重复后,还有一些步骤后才能保存,去除与数据库中重复的代码,处理一些不是文字但一样要显示在文本框的图片,最后才能保存到数据库中
一、去除与数据库中的重复
对比与自身的去重复,与数据库的去重复的流程稍微有点不同,流程是创建一个新的集合,获取到整张记录了需要与传入数据进行匹配的表的所有数据.将需要判断是否重复的数据去除一个,与整个表所复制的变量形成的集合进行对比,将不重复的文件放入新建的用于去重复的集合中,重复的舍弃

获取到整张表,用来与传入的数据判断是否重复,再创建用来接收的集合

通过循环的方式逐个将传入的数据取出来,赋值给item,创建一个字符串类型的变量serImg用来接收item的字段stem,

为了判断每条数据中是否存在img标签,通过图片标签独有的src路径 来查找到每一条含有图片的数据,如果含有图片,则获取到整个img标签,将serImg的img标签替换为空

接下来的步骤与和自己对比去重复类似就不再截取过多图片,用文字叙述代替
首先处理数据库的图片,流程与需要去重复的数据相似,判断有无src有则替换整个img标签
然后将取出的数据与数据库的数据进行对比,去重复,
注意,和与自己比较不同,第一条数据需要判断是否重复
二、处理图片
将传入的数据的图片进行处理,修改读取的路径,移动储存的物理路径,替换一些关键字符

通过for循环,将去除与数据库中的重复之前赋值的包含img图片的文件进行循环
将每一条需要获取的值,赋值给stem

创建一个正则用于匹配出src =’”/Document/Title/Temp/’之后的除空白符外的任意字符,一次或更多次但尽可能少的匹配(懒惰模式),匹配到双引号之前的一个正则表达式,主要用途是获取文件名称

使用定义好的正则去匹配可能存在图片的字符串,如果存在则执行操作,不存在则跳过

创建一个字符串,接收stem通过自定义的正则regex匹配出文件名称
将路径中的反斜杠替换为斜杠,注;由于反斜杠在正则中表示转义字符,所以需要用转义字符去转义即表现为两个反斜杠
将文件名称拼接一个路径,因为之前之获取了文件名(无后缀),通过Server.MapPath将它转化为路径并赋值给oldPath

将stem的字符通过正则匹配出_images后.双引号之前的内容的值并赋值给path
将path中的反斜杠替换为斜杠,通过拼接字符串的方式拼接一个成路径字符串,通过Server.MapPath转化为字符串并赋值给newPath

将stem通过正则匹配出src=”之后双引号之前的内容,即完整的地址后,用path替换它即可完成读取路径的替换

将图片从旧的临时文件夹移动到新的正式文件夹,路径之前已经获取到了,但获取到的路径可能存在错误,所以最好用放在try catch中
三、保存
文件在分割,处理文件,去除自身与对数据的重复,处理图片后,终于可以报存到数据库了

通过AddRange批量添加到数据库,每成功添加一条数据,SaveChanges就会加一

将上传的数据,错误的数据等,计数后赋值给msg用于返回给调用此方法的回调函数,在页面上给用户显示出具体保存信息

代码来源于老师

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: