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把整個集合中的資料提交到資料庫
1string 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...