C 從文字檔案中讀取資料大批量匯入資料庫

2022-09-02 09:45:07 字數 2360 閱讀 8999

表結構:

"號段" "所屬地區" "號碼型別" "區號"

1300000 "北京市" "聯通" "010"

1300001 "江蘇省常州市" "聯通" "0519"

1300002 "安徽省巢湖市" "聯通" "0565"

1300006 "江蘇省南京市" "聯通" "025"

1300008 "湖北省武漢市" "聯通" "027"

使用兩種方法實現插入:

一、insert方法:

**如下:

//定義資料連線字串

private string connstr = configurationmanager.connectionstrings["connstr"].connectionstring;

/// /// 用insert方法從文字檔案中批量匯入到資料庫表中

///

///

///

private void btninsert_click(object sender, routedeventargs e)

//獲得檔名包括路徑

string filename = ofd.filename;

try, stringsplitoptions.removeemptyentries);//將讀取的字串按"製表符/t「和」」「分割成陣列

string startnum = strs[0];

string numarea = strs[1];

string numtype = strs[2];

cmd.commandtext = "insert into t_phoneinfo(fstartnum,fnumarea,fnumtype) values(@startnum,@numarea,@numtype)";

cmd.parameters.clear();//清除上一次的引數

cmd.parameters.add(new sqlparameter("@startnum", startnum));

cmd.parameters.add(new sqlparameter("@numarea", numarea));

cmd.parameters.add(new sqlparameter("@numtype", numtype));

cmd.executenonquery();}}

}}}//結束時間-開始時間=總共花費的時間

timespan ts = datetime.now - starttime;

}catch (ioexception ex)

catch (exception ex)

}

二、使用sqlbulkcopy方法:

**如下:

private void btnsqlbulkcopy_click(object sender, routedeventargs e)

//獲得檔名包括路徑

string filename = ofd.filename;

try, stringsplitoptions.removeemptyentries);//將讀取的字串按"製表符/t「和」」「分割成陣列

string startnum = strs[0];

string numarea = strs[1];

string numtype = strs[2];

//往對應的 行中新增資料

dr["startnum"] = startnum;

dr["numarea"] = numarea;

dr["numtype"] = numtype;

table.rows.add(dr);//將建立的資料行新增到table中}}

}sqlbulkcopy bulkcopy = new sqlbulkcopy(connstr);

bulkcopy.destinationtablename = "t_phoneinfo";//設定資料庫中物件的表名

//設定資料表table和資料庫中表的列對應關係

bulkcopy.writetoserver(table);//將資料表table複製到資料庫中

timespan ts = datetime.now - starttime;}}

catch (ioexception ex)

catch (exception ex)

}

此方法共花費時間

差距啊,sqlbulkcopy在批量資料匯入的時候效率好高。

SQL資料庫與文字檔案之間的大批量資料互導

開啟 xp cmdshell exec sp configure show advanced options 1 reconfigure exec sp configure xp cmdshell 1 reconfigure exec master.xp cmdshell bcp select fr...

C 讀取文字檔案

很多初學c 的同學,對於讀取文字檔案,並按照行處理資料總是有點不知如何開始,作為c 的初學者,自己在這裡做一點筆記。其實利用c 按行讀取文字檔案其實很簡單。假設有乙個文字檔案,如下所示 1 2 3 2 3 4 3 4 5 5 6 7 7 8 9 檔名為split.txt 目的 按照行讀取資料,並乙個...

文字檔案從磁碟讀取 寫入

using system using system.text using system.io namespace x.common return result 寫入文字檔案,按預設編碼 文字檔案路徑包括檔名 寫入內容 public static void write string filepath,...