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

2021-06-22 14:58:30 字數 3680 閱讀 7665

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

newstreamreader

(file.

openread(openfiledialog1.filename),system.text.encoding.default);

//連線資料庫

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();

//大量更新時採用事務的方式,先快取事務,然後sqlitedataadapter.update後批量commit

sqlitetransaction ts = conn.

begintransaction();

string

sql=

" select name,number from test limit 1";

sqlitedataadapter dta = 

newsqlitedataadapter(sql,conn);

sqlitecommandbuilder scb = 

newsqlitecommandbuilder(dta);

dta.insertcommand=scb.

getinsertcommand();

dataset ds = 

newdataset();

dta.

fillschema(ds,schematype.source, 

"temp"); 

//載入表架構注意

dta.

fill(ds,

"temp"); 

//載入表資料

datatable dt = ds.tables[

"temp"];

//插入資料

while

(!sr.endofstream) );

if(strarr[

0] != ""

&&  strarr[

1] != "")

} intresult=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...