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文件导入到数据库中相关推荐

  1. 收藏!用Python一键批量将任意结构的CSV文件导入MySQL数据库。

    Python有很多库可以对CSV文件和Excel文件进行自动化和规模化处理.但是,使用数据库可以将计算机完成任务的能力提升成千上万倍! 那么问题来了,如果有很多个文件需要导入数据库,一个一个操作效率太 ...

  2. 将多个csv文件导入到pandas中并串联到一个DataFrame中

    本文翻译自:Import multiple csv files into pandas and concatenate into one DataFrame I would like to read ...

  3. csv导入mysql php实现_PHP实现csv文件导入mysql数据库的方法

    这篇文章主要介绍了PHP编程实现csv文件导入mysql数据库的方法,涉及php文件读取.转换.数据库的连接.插入等相关操作技巧,需要的朋友可以参考下 具体如下: config.db.php内容如下: ...

  4. 列数较多的csv文件导入mysql数据库(过程及问题记录)

    刚接触mysql,想把几个表导入到数据库中,结果就遇到了问题. 原始数据是这样的: 1.使用navicat报错: [ERR] Cannot create table[china_sites_20140 ...

  5. scrapy实战----将数据存储到csv文件和MySQL数据库中

    本章将通过爬取51jobs求职网站中的python职位信息来实现不同方式的数据存储的需求. github地址--->源代码 我们先来看一下:51jobs网站 我们需要的数据有,职位名 公司名 工 ...

  6. 将.frm、.myd和.myi文件导入mysql数据库中

    1.先建立一个想要的数据库 2.找到存放数据库文件夹 安装目录下搜索找到 my.ini 文件,然后在文件中搜索 datadir , datadir="D:\Documents and Set ...

  7. python将csv文件导入mysql-使用python将csv文件导入Mysql数据库

    这是我的代码:#!/usr/bin/python import MySQLdb import csv db = MySQLdb.connect(host="host", # The ...

  8. Oracle导入csv数据字符集,用SQLLDR把.CSV文件导入到数据库时,出现无法定位字符集句柄以用于字符集标识(0)...

    LOAD.CTL文件内容: load data replace into table js_clk_load fields terminated by "," optionally ...

  9. php导入csv文件,php实现CSV文件导入和导出

    项目开发中,很多时候要将外部CSV文件导入到数据库中或者将数据导出为CSV文件,那么具体该如何实现呢?本文将使用PHP并结合mysql,实现了CSV格式数据的导入和导出功能. 我们先准备mysql数据 ...

最新文章

  1. CMD 输入中文看不到输入法的解决方法
  2. 一.Timesten安装
  3. Java项目:学生管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
  4. 结构事物 java uml,UML考试试题及答案7讲解
  5. centos7.1 RabbitMQ安装配置
  6. 计算机专业毕业文案,我们毕业啦!|今天,没有文案
  7. CSDP是个好东西——CSDP 认证考试简介
  8. 我们工作的意义到底在哪?
  9. [leetcode] 3.无重复字符的最长子串
  10. Envi和ArcGIS软件打开和处理.NC4数据
  11. 面试问题汇总 精选 分析 解答 职业规划 part 2
  12. Mobile and MID opportunities in APAC
  13. Java Web-网页基础-HTML基础
  14. mysql case quchong_处理mysql的查询语句去重案例一则
  15. linux shutdown 命令
  16. 手撕代码之快速排序算法(简单明了)
  17. python的try和except_关于python:修复try和except中的无效语法错误
  18. 7-76 打印选课学生名单 (25分)
  19. ssm基于JavaEE的电脑销售管理系统设计与实现 毕业设计-附源码021143
  20. Java 核心技术专题

热门文章

  1. SCCM 2016 配置管理系列(Part 12 )
  2. 你真的懂用户画像吗?
  3. Hive应用:外部分区表
  4. saiku+kettle整合(二)数据装载
  5. (CZ深入浅出Java基础)线程笔记
  6. 通过java.util.concurrent写多线程程序
  7. 照亮云备份的“钱”途
  8. 使用vSphere Host Update Utility 4.0升级ESX 3到4.0版本
  9. 移动端开发, 常用CSS单位
  10. new Integer 和 Integer.valueOf 有什么不同