将csv文件导入到数据库中
1、csv文件简介
CSV全称 Comma Separated values,是一种用来存储数据的纯文本文件格式,通常用于电子表格或数据库软件。这样你就发现了,csv其实就是纯文本文件,可以使用记事本打开。但是因为他一般表示的是表,所以windows下默认的是用excel打开的。
他的规则如下:
开头是不留空,以行为单位。
- 可含或不含列名,含列名则居文件第一行。(这一点在插入时需要注意判断,如果第一行是列名,那么需要把第一行数据抛弃)
- 一行数据不垮行,无空行。
- 以半角符号[,]作分隔符,列为空也要表达其存在。
- 列内容如存在[,],则用双引号[””]将该字段内容包含起来。
- 列内容如存在[”],双引号[””]将该字段内容包含起来,并且在内容中用两个双引号表示一双引号[””]。
- 文件读写时引号,逗号操作规则互逆。
- 内码格式不限,可为ASCII、Unicode或者其他。
2、插入数据库操作
将csv文件插入数据库是一个常见的需求,最简单的做法就是直接读取csv文件,然后一行一行读出来后用split(",")分割之后插到数据库中。当然这种方法虽然看起来简单,但是有写问题很难解决。比如列内容中有[,]的问题,这种情况如果用这种方法的话很难判断。所以一般情况下不能推荐使用这种方法来插入数据。
今天我介绍的方法是用Microsoft ActiveX Data Objects 来做:
(1)引入Microsoft ActiveX Data Objects
右击“引用”——COM选项卡——Microsoft ActiveX Data Objects,我的电脑是6.0版本的,实际使用中版本间差距不大,代码都可以通用。
(2)代码部分:
/// <summary>/// 将csv文件导入到数据库中/// </summary>/// <param name="strCSVFile">导入的文件名</param>/// <param name="strPathToTextFile">文件的存储路径</param>public void test(string strCSVFile, string strPathToTextFile){Connection adoCSVConnection = null;Recordset adoCSVRecordSet = null;try{adoCSVConnection = new Connection();adoCSVRecordSet = new Recordset();adoCSVConnection.Open(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"text;HDR=YES;FMT=Delimited\"", strPathToTextFile));adoCSVRecordSet.Open(string.Format("SELECT * FROM {0}", strCSVFile), adoCSVConnection);while (!adoCSVRecordSet.EOF){for (int i = 0; i < adoCSVRecordSet.Fields.Count; i++){var strsource = adoCSVRecordSet.Fields[i].Value; //到这里你懂的了吧...^_^}adoCSVRecordSet.MoveNext(); }}catch (Exception ex){}finally{if (adoCSVRecordSet != null){adoCSVRecordSet.Close();}if (adoCSVConnection != null){adoCSVConnection.Close();}}}
这种方法其实是将csv文件作为一种数据库来操作,你可以看到有连接字符串"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"text;HDR=YES;FMT=Delimited\""。
将csv文件插入到数据库中还有很多因素要考虑,比如对于大批量的数据需要用到多线程,以及对于mvc中无法使用webform中的委托回调函数来获得数据更改ui线程。这些问题以后有时间再写出来。
转载于:https://www.cnblogs.com/zhangkai2237/archive/2012/08/12/2635317.html
将csv文件导入到数据库中相关推荐
- 收藏!用Python一键批量将任意结构的CSV文件导入MySQL数据库。
Python有很多库可以对CSV文件和Excel文件进行自动化和规模化处理.但是,使用数据库可以将计算机完成任务的能力提升成千上万倍! 那么问题来了,如果有很多个文件需要导入数据库,一个一个操作效率太 ...
- 将多个csv文件导入到pandas中并串联到一个DataFrame中
本文翻译自:Import multiple csv files into pandas and concatenate into one DataFrame I would like to read ...
- csv导入mysql php实现_PHP实现csv文件导入mysql数据库的方法
这篇文章主要介绍了PHP编程实现csv文件导入mysql数据库的方法,涉及php文件读取.转换.数据库的连接.插入等相关操作技巧,需要的朋友可以参考下 具体如下: config.db.php内容如下: ...
- 列数较多的csv文件导入mysql数据库(过程及问题记录)
刚接触mysql,想把几个表导入到数据库中,结果就遇到了问题. 原始数据是这样的: 1.使用navicat报错: [ERR] Cannot create table[china_sites_20140 ...
- scrapy实战----将数据存储到csv文件和MySQL数据库中
本章将通过爬取51jobs求职网站中的python职位信息来实现不同方式的数据存储的需求. github地址--->源代码 我们先来看一下:51jobs网站 我们需要的数据有,职位名 公司名 工 ...
- 将.frm、.myd和.myi文件导入mysql数据库中
1.先建立一个想要的数据库 2.找到存放数据库文件夹 安装目录下搜索找到 my.ini 文件,然后在文件中搜索 datadir , datadir="D:\Documents and Set ...
- python将csv文件导入mysql-使用python将csv文件导入Mysql数据库
这是我的代码:#!/usr/bin/python import MySQLdb import csv db = MySQLdb.connect(host="host", # The ...
- Oracle导入csv数据字符集,用SQLLDR把.CSV文件导入到数据库时,出现无法定位字符集句柄以用于字符集标识(0)...
LOAD.CTL文件内容: load data replace into table js_clk_load fields terminated by "," optionally ...
- php导入csv文件,php实现CSV文件导入和导出
项目开发中,很多时候要将外部CSV文件导入到数据库中或者将数据导出为CSV文件,那么具体该如何实现呢?本文将使用PHP并结合mysql,实现了CSV格式数据的导入和导出功能. 我们先准备mysql数据 ...
最新文章
- CMD 输入中文看不到输入法的解决方法
- 一.Timesten安装
- Java项目:学生管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
- 结构事物 java uml,UML考试试题及答案7讲解
- centos7.1 RabbitMQ安装配置
- 计算机专业毕业文案,我们毕业啦!|今天,没有文案
- CSDP是个好东西——CSDP 认证考试简介
- 我们工作的意义到底在哪?
- [leetcode] 3.无重复字符的最长子串
- Envi和ArcGIS软件打开和处理.NC4数据
- 面试问题汇总 精选 分析 解答 职业规划 part 2
- Mobile and MID opportunities in APAC
- Java Web-网页基础-HTML基础
- mysql case quchong_处理mysql的查询语句去重案例一则
- linux shutdown 命令
- 手撕代码之快速排序算法(简单明了)
- python的try和except_关于python:修复try和except中的无效语法错误
- 7-76 打印选课学生名单 (25分)
- ssm基于JavaEE的电脑销售管理系统设计与实现 毕业设计-附源码021143
- Java 核心技术专题