近日有需要寫點c#程式,有用到dataset資料集和sqlite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘:
一、sqlite操作,直接貼**,很簡單:
//建立乙個資料庫檔案
string
+ "\\test.db"
;system.data.sqlite.sqliteconnection.
createfile
(datasource);
//連線資料庫
system.data.sqlite.sqliteconnection conn =
newsystem.data.sqlite.
sqliteconnection
();system.data.sqlite.sqliteconnectionstringbu
ilder connstr =
newsystem.data.sqlite.
sqliteconnectionstringbuilder
();connstr.datasource = datasource;
connstr.password =
"admin"
;//設定密碼,sqlite ado.net實現了資料庫密碼保護
conn.connectionstring = connstr.
tostring
();conn.
open
();//建立表
system.data.sqlite.sqlitecommand cmd =
newsystem.data.sqlite.
sqlitecommand
();string
sql =
"create table test(username varchar(20),password varchar(20))"
;cmd.commandtext=sql;
cmd.connection=conn;
cmd.
executenonquery
();//插入資料
sql =
"insert into test values('dotnetthink','mypassword')"
;cmd.commandtext = sql;
cmd.
executenonquery
();//取出資料
sql =
"select * from test"
;cmd.commandtext = sql;
system.data.sqlite.sqlitedatareader reader = cmd.
executereader
();stringbuilder sb =
newstringbuilder
();while
(reader.
read
())messagebox.
show
(sb.
tostring
());
二、利用dataset資料集向sqlite資料庫插入資料,也直接貼**:
dialogresult dlgresult= openfiledialog1.showdialog(); // 開啟要匯入的檔案
if (openfiledialog1.filename == "" || dlgresult != dialogresult.ok)
return;
// 利用streamreader類讀取文字內容
streamreader sr=new streamreader
(file.openread(openfiledialog1.filename),system.text.encoding.default);
//連線資料庫
system.data.sqlite.sqliteconnection conn = new system.data.sqlite.sqliteconnection();
system.data.sqlite.sqliteconnectionstringbuilder connstr
= new system.data.sqlite.sqliteconnectionstringbuilder();
connstr.datasource = datasource;
connstr.password = "admin";//設定密碼,sqlite ado.net實現了資料庫密碼保護
conn.connectionstring = connstr.tostring();
conn.open();
//大量更新時採用事務的方式,先快取事務,然後sqlitedataadapter.update後批量commit
sqlitetransaction ts = conn.begintransaction();
string sql=" select name,number from test limit 1";
sqlitedataadapter dta = new
sqlitedataadapter(sql,conn);
sqlitecommandbuilder scb = new
sqlitecommandbuilder(dta);
dta.insertcommand=scb.getinsertcommand();
dataset ds = new
dataset();
dta.fillschema(ds,schematype.source, "temp"); //載入表架構 注意
dta.fill(ds,"temp"); //載入表資料
datatable dt = ds.tables["temp"];
//插入資料
while (!sr.endofstream)
);if (strarr[0] !="" && strarr[1] !="")
}int result=dta.update(dt); // 如不用begintransaction和commit批量提交事務,效能會很低,350條資料20多秒
ts.commit(); // 提交事務
ds.acceptchanges();
// 釋放資源
dta.dispose();
ds.clear();
conn.close();
conn.dispose();
sr.close();
sr.dispose();
messagebox.show("成功匯入了: " + result.tostring() + " 行資料。", "提示", messageboxbuttons.ok, messageboxicon.information);
C 操作Dataset資料集與SQLite資料庫
近日有需要寫點c 程式,有用到dataset資料集和sqlite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘 一 sqlite操作,直接貼 很簡單 建立乙個資料庫檔案 string test.db system.data.sqlite.sqliteconne...
C 之資料集 DataSet物件
ado.net資料訪問技術的乙個突出的特點就是支援離線訪問,而實現這種離線訪問技術的核心就是dataset物件,該物件通過將資料駐留在記憶體來實現離線訪問。dataset物件概述 dataset物件由一組datatable物件組成,這些物件與datarelation物件互相關聯。這些dataset物...
c 使用redis 訪問dataset資料集
1.下面是關於c 使用redis資料庫 對dataset進行訪問操作的方法using servicestack.redis using system using system.collections.generic using system.configuration using system.da...