讀取檔案並將檔案內容匯入資料庫

2022-03-02 14:12:06 字數 3082 閱讀 8487

很多時候我們需要把乙個檔案按行讀取出來,並把讀出的內容插入到資料庫對應的字段,我們可以寫個方法,規定從檔案第幾行讀取,檔案中不同欄位間的分隔符是什麼,以及插入資料庫中對應表的列數。當然這其中檔案有的字段可能為空,這可能導致我們每行分隔檔案後的字段數和資料庫中的字段數不對應,所以也要進一步的處理。以下文的檔案格式為例(此檔案欄位間以tab鍵分割),把其按行讀取並插入資料庫。

客戶** 收貨人** 產品** 最少發貨數量 發貨單位 新增日期 新增人

c00001   r00001   p000001  10    件   2011-11-08    joeleo

c00001   r00002   p000002  30    件            

c00001   r00003   p000003  40    件

c00001   r00003   p000003  40    件

c00001   r00003   p000003  40    件   2011-11-08    joeleo

c00001   r00003   p000003  40    件

1

///2

///按行讀取檔案裡的內容並插入到資料庫

3///

4///

5///

6///

7///

8///

9///

10public

void readfilebysplitterinoneline(string filefullpath, int startline, string splitter, int columncount, string encodingname)

11 19

20//

從起始行開始獲取內容

21while ((linetext = sr.readline()) != null)

22 , stringsplitoptions.none); //

此時按分隔符擷取檔案的內容,檔案中對應資料庫的字段有可能為空,導致每行分割的數量小於資料庫中要插入的字段數量,我們要進一步處理讓分割的數量達到要插入資料庫中的列數

25for (int i = 0; i < columncount; i++)

26

31else

32

35 }

36 allfields = allfields.substring(0, allfields.length - 3);

37if (allfields.replace("

+|+", "").trim().length > 0)

38 , stringsplitoptions.none);

40string cmdstr = "

insert into minsend (clientcode,receivercode,productcode,minsendcount,sendunit,adddate,addperson) values(@clientcode,@receivercode,@productcode,@minsendcount,@sendunit,@adddate,@addperson)

";41 sqlparameter parameters1 = ;

50 parameters1[0].value = strtemp[0].tostring();

51 parameters1[1].value = strtemp[1].tostring();

52 parameters1[2].value = strtemp[2].tostring();

53 parameters1[3].value = strtemp[3].tostring();

54 parameters1[4].value = strtemp[4].tostring();

5556

if (strtemp[5].tostring() == "")

57

60else

61

70 parameters1[6].value = strtemp[6].tostring();

72 executenonquery(cmdstr, commandtype.text, parameters1);

7374 }

75 }

76 console.writeline("

匯入成功!

");77 sr.close();

78 sr.dispose();

79 }

8081

///82

///對資料庫執行增刪改操作

83///

84///

要執行的sql語句

85///

要執行的查詢語句的型別,如儲存過程或者sql文字命令

86///

transact-sql 語句或儲存過程的引數陣列

87///

返回執行操作受影響的行數

88private

static

void executenonquery(string commandtext, commandtype commandtype, sqlparameter parameters)

89104 }

105 connection.open();//

開啟資料庫連線

106 count = command.executenonquery();

107 command.parameters.clear();

108 }

109 }

110//

return count;

//返回執行增刪改操作之後,資料庫中受影響的行數

111 }

node讀取geojson檔案,匯入資料庫

先導入mysql cnpm install mysql var mysql require mysql 建立連線 var connection mysql.createconnection 連線到資料庫 connection.connect 資料測試,製作資料multilinestring,geoj...

讀取xml檔案內容到資料庫

前言 前言不搭後語 內容 聽某個大牛說他們的公司常常會涉及到從xml檔案中讀資料到寫入到資料庫,序列化的時候會遇到這這個問題,將要持久化的資料到xml檔案儲存起來,為了方便資料的傳輸。看了xml的讀取還是很有意思的。在drp中,我勇哥講到從xml檔案中讀節點值寫入到資料庫中。下面是這個小demo,小...

PHP讀取CSV大檔案匯入資料庫

php如何對csv大檔案進行讀取並匯入資料庫?對於數百萬條資料量的csv檔案,檔案大小可能達到數百m,如果簡單讀取的話很可能出現超時或者卡死的現象。為了成功將csv檔案裡的資料匯入資料庫,分批處理是非常必要的。下面這個函式是讀取csv檔案中指定的某幾行資料 csv get lines 讀取csv檔案...