日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

将csv文件导入到数据库中

發(fā)布時間:2025/7/14 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将csv文件导入到数据库中 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、csv文件簡介

  CSV全稱?Comma Separated values,是一種用來存儲數(shù)據(jù)的純文本文件格式,通常用于電子表格或數(shù)據(jù)庫軟件。這樣你就發(fā)現(xiàn)了,csv其實就是純文本文件,可以使用記事本打開。但是因為他一般表示的是表,所以windows下默認(rèn)的是用excel打開的。

  他的規(guī)則如下:

?開頭是不留空,以行為單位。

  • 可含或不含列名,含列名則居文件第一行。(這一點在插入時需要注意判斷,如果第一行是列名,那么需要把第一行數(shù)據(jù)拋棄)
  • 一行數(shù)據(jù)不垮行,無空行。
  • 以半角符號[,]作分隔符,列為空也要表達(dá)其存在。
  • 列內(nèi)容如存在[,],則用雙引號[””]將該字段內(nèi)容包含起來。
  • 列內(nèi)容如存在[”],雙引號[””]將該字段內(nèi)容包含起來,并且在內(nèi)容中用兩個雙引號表示一雙引號[””]。
  • 文件讀寫時引號,逗號操作規(guī)則互逆。
  • 內(nèi)碼格式不限,可為ASCII、Unicode或者其他。

2、插入數(shù)據(jù)庫操作

  將csv文件插入數(shù)據(jù)庫是一個常見的需求,最簡單的做法就是直接讀取csv文件,然后一行一行讀出來后用split(",")分割之后插到數(shù)據(jù)庫中。當(dāng)然這種方法雖然看起來簡單,但是有寫問題很難解決。比如列內(nèi)容中有[,]的問題,這種情況如果用這種方法的話很難判斷。所以一般情況下不能推薦使用這種方法來插入數(shù)據(jù)。

  今天我介紹的方法是用Microsoft ActiveX Data Objects 來做:

(1)引入Microsoft ActiveX Data Objects

  右擊“引用”——COM選項卡——Microsoft ActiveX Data Objects,我的電腦是6.0版本的,實際使用中版本間差距不大,代碼都可以通用。

?

?

(2)代碼部分:

/// <summary>/// 將csv文件導(dǎo)入到數(shù)據(jù)庫中/// </summary>/// <param name="strCSVFile">導(dǎo)入的文件名</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文件作為一種數(shù)據(jù)庫來操作,你可以看到有連接字符串"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"text;HDR=YES;FMT=Delimited\""。

?

  將csv文件插入到數(shù)據(jù)庫中還有很多因素要考慮,比如對于大批量的數(shù)據(jù)需要用到多線程,以及對于mvc中無法使用webform中的委托回調(diào)函數(shù)來獲得數(shù)據(jù)更改ui線程。這些問題以后有時間再寫出來。

轉(zhuǎn)載于:https://www.cnblogs.com/zhangkai2237/archive/2012/08/12/2635317.html

總結(jié)

以上是生活随笔為你收集整理的将csv文件导入到数据库中的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。