操作 sqlite封裝的乙個類庫

2021-08-25 18:43:02 字數 3482 閱讀 2576

在wince裝置上,使用sqlite很方便,基本都能滿足專案的需要,速度也不錯。在工作中,封裝了此類,方便開發。

using system;

using system.collections.generic;

using system.text;

using system.data.sqlite;

using system.data;

using system.io;

namespace austec.db

}///

/// 不允許通過該方式構造此類

///

private csqlite(){}

///

/// 開啟資料庫

///

/// 資料庫路徑

public csqlite( string dbpath )

~csqlite()

#region 開啟與關閉

public bool open()

if (sqconn.state == connectionstate.closed)

}m_result = true;

return true;

}catch (system.exception ex)

}public void dispose()

public void close()

}system.data.sqlite.sqliteconnection.clearallpools();

}#endregion

///

/// 執行不帶返回結果的命令

///

/// 查詢語句

///

public bool executenonquery(string sqlcmd )

catch (system.exception ex)

return true;

}///

/// 執行sql命令,並返回read,read使用完畢,必須關閉

///

///

///

public sqlitedatareader executequery(string sqlcmd)

catch (system.exception ex)

}///

/// 執行sql命令,並返回read,read使用完畢,必須關閉

///

///

///

public bool executequerytable(string sqlcmd, out datatable dt)

/// 添充表

for( int i=0; i///

/// 執行sql命令,並返回第一行記錄的第一列值

///

///

///

public object executescalar( string sqlcmd )

else

return ob;

}catch (system.exception ex)

}///

/// 按照記憶體表的結構建立表及索引;如果表已經存在,將直接返回

///

/// 在建立的表

/// 索引字段,多個欄位以逗號分隔

///

public bool createtable(ref datatable dt, string strindexfield )

// 查詢表有沒有存在

string sql = "select count(*) from sqlite_master where tbl_name='" + dt.tablename + "' and type='table'";

object ob = executescalar(sql);

if (!m_result)

if (convert.toint32(ob) == 1)

string strsql="", strcmdsql="";

strcmdsql = " create table " + dt.tablename + " ( ";

for (int i = 0; i < dt.columns.count; i++ )

if ( strindexfield!=null && strindexfield.trim().length>0 )}}

m_result = true;

return true;

}catch (system.exception ex)

}///

/// 刪除表及表的索引

///

///

///

public bool droptableandindex( string tablename )

if ( convert.toint32(ob)==0 )

string cmdsql = "drop table " + tablename ;

if ( !executenonquery(cmdsql) )

m_result = true;

return true;

}catch (system.exception ex)

}///

/// 將記憶體表插入相應的表中

///

///

///

public bool inserttable( ref datatable dt)

if ( dt.rows.count==0 )

int i = 0;

string sql = "insert into " + dt.tablename + " values( ";

string sqldata = "", strcmdsql = "";

begintransaction();

foreach (datarow row in dt.rows)

}strcmdsql = sql + sqldata + " )";

if (!executenonquery(strcmdsql))

}commit();

m_result = true;

return true;

}///

/// 刪除指定表的資料

///

/// 表名

///

public bool deletetabledata( string tablename )

m_result = false;

if ( convert.toint32(ob)==0 )

sql = "delete from " + tablename;

if ( executenonquery(sql) )

else

}#region 事務操作

public void begintransaction()

public void commit()

public void rollback()

#endregion}}

乙個封裝的C Socket類

乙個封裝的c socket類 2011年06月03日 include stdafx.h include libyfun.h include mytcp.h include ty server.h 建構函式 myctcp myctcp 析構函式 myctcp myctcp 賦值 入參 nsockfd ...

多個類封裝為乙個動態庫

案例 在comm資料夾下,有兩個類 msgbox log。如下為 msgbox.h 的內容 msgbox.h if defined msgbox staticlib define msgbox export else if defined msgbox lib define msgbox expor...

使用libzplay庫封裝乙個音訊類

裝載請說明原位址,謝謝 的編碼解碼器。庫本身是由winapi編寫,你無須額外的庫,也不需要mfc net的支援,只能在windows下執行。可以看到上方是控制按鈕,通過對應的按鈕可以控制 效果,控制功能還是很全面的,比如聲音 漸弱 漸強 回音 通道混合 均衡器 去除某個音軌。我隨便找了乙個 改變了一...