SqliteHelper整理
生活随笔
收集整理的這篇文章主要介紹了
SqliteHelper整理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
剛開通博客不久,還沒有發過文。這是第一篇,要鼓勵我自己再接再厲。
另外,我也是剛剛踏上程序員這條路,有賴各位多多提攜!
閑話不多說,最近參與的項目包含本地化存儲這一塊。昨天就園子里找了些資料有另外補充了一些,集合成了一個Helper類,現分享給大家!
下面是全部代碼:
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>
/// 功能: 創建數據庫,帶路徑
/// [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>
/// 功能: 執行sql,不返回
/// [2011-10-24 14:15 Bee]<para />
/// </summary>
/// <param name="sqlStr">要執行的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>
/// 功能: 執行sql語句數組
/// [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>
/// 功能: 執行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;
}
}
}
}
}
代碼中包含注釋,我就不啰嗦了。
唯一一點需要注意的是:既然是在客戶端本地存儲,那么可能就不會只有一個文件,所以我設計的這個類實例化的時候需要帶著數據文件的地址。
如果已經確定只有一個文件,那么就沒有必要這么麻煩了,所有的方法也就可以設置成靜態的!
本類中的dbName就是數據庫文件,可以是全路徑,類似“E:\test.db3”,也可以是相對路徑,類似:“test.db3”。
使用方法我就不羅嗦了。 操作數據庫用的DLL,還有工具,我不知道怎么上傳。。。。。。
轉載于:https://www.cnblogs.com/Bytime/archive/2011/10/27/2226004.html
總結
以上是生活随笔為你收集整理的SqliteHelper整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载:闲话权限设计三层境界
- 下一篇: 关于如何在PSA众多请求号中查找数据是属