SqliteHelper整理
生活随笔
收集整理的這篇文章主要介紹了
SqliteHelper整理
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
剛開通博客不久,還沒有發(fā)過文。這是第一篇,要鼓勵(lì)我自己再接再厲。
另外,我也是剛剛踏上程序員這條路,有賴各位多多提攜!
閑話不多說,最近參與的項(xiàng)目包含本地化存儲(chǔ)這一塊。昨天就園子里找了些資料有另外補(bǔ)充了一些,集合成了一個(gè)Helper類,現(xiàn)分享給大家!
下面是全部代碼:
class SqliteHelper{
private string connStr = "";
public SqliteHelper(string dbName, bool isFullPath)
{
if (isFullPath)
{
connStr = @"Data Source=" + dbName + ";Initial Catalog=sqlite;Integrated Security=True;Max Pool Size=10";
}
else
{
connStr = @"Data Source=" + System.Environment.CurrentDirectory + "\\" + dbName + ";Initial Catalog=sqlite;Integrated Security=True;Max Pool Size=10";
}
}
/// <summary>
/// 功能: 創(chuàng)建數(shù)據(jù)庫,帶路徑
/// [2011-10-24 14:16 Bee]<para />
/// </summary>
/// <param name="dbName"></param>
public void CreateDB(string dbName, bool isFullPath)
{
if (isFullPath)
{
if (!File.Exists(dbName))
{
SQLiteConnection.CreateFile(dbName);
}
}
else
{
if (!File.Exists(System.Environment.CurrentDirectory + "\\" + dbName))
{
SQLiteConnection.CreateFile(System.Environment.CurrentDirectory + "\\" + dbName);
}
}
}
/// <summary>
/// 功能: 執(zhí)行sql,不返回
/// [2011-10-24 14:15 Bee]<para />
/// </summary>
/// <param name="sqlStr">要執(zhí)行的sql</param>
public void ExecuteSql(string sqlStr)
{
using (DbConnection conn = new SQLiteConnection(connStr))
{
conn.Open();
DbCommand comm = conn.CreateCommand();
comm.CommandText = sqlStr;
comm.CommandType = CommandType.Text;
comm.ExecuteNonQuery();
}
}
/// <summary>
/// 功能: 執(zhí)行sql語句數(shù)組
/// [2011-10-24 14:54 Bee]<para />
/// </summary>
/// <param name="sqlStr"></param>
public void ExecuteSqlList(string[] sqlStr)
{
using (DbConnection conn = new SQLiteConnection(connStr))
{
conn.Open();
DbCommand comm = conn.CreateCommand();
foreach (string item in sqlStr)
{
comm.CommandText = item;
comm.CommandType = CommandType.Text;
comm.ExecuteNonQuery();
}
}
}
/// <summary>
/// 功能: 執(zhí)行sql返回deteset
/// [2011-10-24 14:15 Bee]<para />
/// </summary>
/// <param name="sqlStr"></param>
/// <returns></returns>
public DataSet ExecDataSet(string sqlStr)
{
using (SQLiteConnection conn = new SQLiteConnection(connStr))
{
conn.Open();
SQLiteCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlStr;
cmd.CommandType = CommandType.Text;
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
/// <summary>
/// 功能: 判斷表是否存在
/// [2011-10-24 14:14 Bee]<para />
/// </summary>
/// <param name="tableName"></param>
/// <returns>存在不存在</returns>
public bool IsTableExist(string tableName)
{
using (SQLiteConnection connection = new SQLiteConnection(connStr))
{
connection.Open();
using (SQLiteCommand command = new SQLiteCommand(connection))
{
command.CommandText = "SELECT COUNT(*) FROM sqlite_master where type='table' and name='" + tableName + "'";
int iaaa = Convert.ToInt32(command.ExecuteScalar());
if (Convert.ToInt32(command.ExecuteScalar()) == 0)
{
return false;
}
else
{
return true;
}
}
}
}
}
代碼中包含注釋,我就不啰嗦了。
唯一一點(diǎn)需要注意的是:既然是在客戶端本地存儲(chǔ),那么可能就不會(huì)只有一個(gè)文件,所以我設(shè)計(jì)的這個(gè)類實(shí)例化的時(shí)候需要帶著數(shù)據(jù)文件的地址。
如果已經(jīng)確定只有一個(gè)文件,那么就沒有必要這么麻煩了,所有的方法也就可以設(shè)置成靜態(tài)的!
本類中的dbName就是數(shù)據(jù)庫文件,可以是全路徑,類似“E:\test.db3”,也可以是相對路徑,類似:“test.db3”。
使用方法我就不羅嗦了。 操作數(shù)據(jù)庫用的DLL,還有工具,我不知道怎么上傳。。。。。。
轉(zhuǎn)載于:https://www.cnblogs.com/Bytime/archive/2011/10/27/2226004.html
總結(jié)
以上是生活随笔為你收集整理的SqliteHelper整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载:闲话权限设计三层境界
- 下一篇: 关于如何在PSA众多请求号中查找数据是属