C 操作Dataset資料集與SQLite資料庫

2022-07-29 19:00:18 字數 3361 閱讀 5646

近日有需要寫點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...