資料匯入和匯出

2022-01-30 11:01:27 字數 1814 閱讀 2058

1.  資料匯入

將資料從檔案中匯入到資料庫。

1. 從檔案中讀取資料

2. 將資料插入資料庫

//

注意:如果讀取檔案的編碼與檔案儲存的編碼不一致,容易出現亂碼

沒有第二個引數額過載是採用utf8編碼

ienumerable lines =file.readlines(filepath, encoding.default);

foreach (string line in

lines)

2.  資料匯入

資料匯出,從資料庫中讀取資料,然後儲存到某個檔案中

dataset dataset = sqlhelper.executedataset("

select username,password,errortimes from t_user");

datatable table = dataset.tables[0

]; datarowcollection rows =table.rows;

string strarray = new

string[1000

];

foreach (datarow row in

rows)

string filepath =sfd.filename;

file.writealllines(filepath, strarray, encoding.default);

3.  資料匯入的優化

上面資料匯入的**在向資料庫匯入資料的時候,是這樣做的

foreach

( .......)

在迴圈中,每次插入資料都是一條一條地插入,每次插入一條資料都要經過:開啟連線——插入資料——關閉連線 這樣的操作。如果資料量很大的話,就需要執行很長時間了。例如,以這樣的方法插入資料2萬多條資料,總共需要耗時20多分鐘。在做專案的時候這樣做的話,根本傷不起!!!

所以在資料量大的時候,應該採取批量提交的策略,在提交過程中保持連線的開啟,直到資料提交完畢再關閉連線。接下來就該sqlbulkcopy這個類出場了,sqlbulkcopy也實現了idisposable這個介面,所以它可以在using中使用。

1.  先用乙個本地複雜集合 datatable來記錄要插入的資料

2.  然後再用sqlbulkcopy把整個集合中的資料提交到資料庫

1

string lines =file.readlines(filepath, encoding.default).toarray();23

string constr = configurationmanager.connectionstrings["

dbconnstr

"].connectionstring;

4using (sqlconnection conn = new

sqlconnection(constr))530

31using (sqlbulkcopy bulkcopy = new

sqlbulkcopy(conn))

3242 }

提交了2萬多條資料,總共耗時3秒左右,大大地縮短了插入資料的時間!!!

資料匯出和匯入

以winfrom為例 控制台也可以 1 由記事本匯入資料庫中 1 使用流檔案與記事本建立聯絡 filestream filestream file.open h studentinfo.txt filemode.openorcreate,fileaccess.read streamreader re...

Hive資料匯入和匯出

1.將select的結果放到乙個的的 中 首先要用create table建立新的 insert overwrite table test select uid,name from test2 2.將select的結果放到本地檔案系統中 insert overwrite local director...

Django 資料匯入和匯出

本文主要講資料庫的遷移方法,包含不同資料庫,如 sqlite3,mysql,postgresql 之間資料遷移方案,以及資料在不同機器上遷移方案 1 1 python manage.py dumpdata blog blog dump.json 1 python manage.py loaddata...