操作sqlite資料庫
SQLite Helper類,基於.net c#的SQLite資料庫操作類SQLite這個精巧的小資料庫,無需安裝軟體,只需要一個System.Data.SQLite.DLL文件即可操作SQLite資料庫。但是據說功能卻非常強大。簡介:SQLite是一個開源資料庫,現在已變得越來越流行,它的體積很小,被廣泛應用於各種不同類型的應用中。SQLite已經是世界上布署得最廣泛的SQL資料庫引擎,被用在無以計數的桌面電腦應用中,還有消費電子設備中,如行動電話、掌上電腦和MP3播放器等。SQLite的源碼就放在公有領域(即WikiPedia的public domain)中。開始使用:Sqliteman,windows下最好的sqlite gui客戶端 sqlite,sqliteman 7.72M
SQLite Administrator 0.8.3.2┊是基於資料庫引擎的管理工具┊漢化綠色特別版 sqlite 1.68M
SQLite,除了access,mysql以外的另外一個輕量級資料庫
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Configuration;
using System.Data;
using System.Data.SQLite;namespace DAL
{
public class Sqlite
{
/// <summary>
/// 獲得連接對象
/// </summary>
/// <returns></returns>
public static SQLiteConnection GetSQLiteConnection()
{
return new SQLiteConnection("Data Source=" + System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["db"].ToString()));
} private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, params object[] p)
{ if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Parameters.Clear();
cmd.Connection = conn;
cmd.CommandText = cmdText; cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = 30; if (p != null)
{
foreach (object parm in p)
cmd.Parameters.AddWithValue(string.Empty, parm);
//for (int i = 0; i < p.Length; i++)
// cmd.Parameters[i].Value = p[i];
}
} public static DataSet ExecuteDataset(string cmdText, params object[] p)
{
DataSet ds = new DataSet();
SQLiteCommand command = new SQLiteCommand();
using (SQLiteConnection connection = GetSQLiteConnection())
{
PrepareCommand(command, connection, cmdText, p);
SQLiteDataAdapter da = new SQLiteDataAdapter(command);
da.Fill(ds);
} return ds;
} public static DataRow ExecuteDataRow(string cmdText, params object[] p)
{
DataSet ds = ExecuteDataset(cmdText, p);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
return ds.Tables[0].Rows[0];
return null;
} /// <summary>
/// 返回受影響的行數
/// </summary>
/// <param name="cmdText">a</param>
/// <param name="commandParameters">傳入的參數</param>
/// <returns></returns>
public static int ExecuteNonQuery(string cmdText, params object[] p)
{
SQLiteCommand command = new SQLiteCommand(); using (SQLiteConnection connection = GetSQLiteConnection())
{
PrepareCommand(command, connection, cmdText, p);
return command.ExecuteNonQuery();
}
} /// <summary>
/// 返回SqlDataReader對象
/// </summary>
/// <param name="cmdText"></param>
/// <param name="commandParameters">傳入的參數</param>
/// <returns></returns>
public static SQLiteDataReader ExecuteReader(string cmdText, params object[] p)
{
SQLiteCommand command = new SQLiteCommand();
SQLiteConnection connection = GetSQLiteConnection();
try
{
PrepareCommand(command, connection, cmdText, p);
SQLiteDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
catch
{
connection.Close();
throw;
}
} /// <summary>
/// 返回結果集中的第一行第一列,忽略其他行或列
/// </summary>
/// <param name="cmdText"></param>
/// <param name="commandParameters">傳入的參數</param>
/// <returns></returns>
public static object ExecuteScalar(string cmdText, params object[] p)
{
SQLiteCommand cmd = new SQLiteCommand(); using (SQLiteConnection connection = GetSQLiteConnection())
{
PrepareCommand(cmd, connection, cmdText, p);
return cmd.ExecuteScalar();
}
} /// <summary>
/// 分頁
/// </summary>
/// <param name="recordCount"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="cmdText"></param>
/// <param name="countText"></param>
/// <param name="p"></param>
/// <returns></returns>
public static DataSet ExecutePager(ref int recordCount, int pageIndex, int pageSize, string cmdText, string countText, params object[] p)
{
if (recordCount < 0)
recordCount = int.Parse(ExecuteScalar(countText, p).ToString()); DataSet ds = new DataSet(); SQLiteCommand command = new SQLiteCommand();
using (SQLiteConnection connection = GetSQLiteConnection())
{
PrepareCommand(command, connection, cmdText, p);
SQLiteDataAdapter da = new SQLiteDataAdapter(command);
da.Fill(ds, (pageIndex - 1) * pageSize, pageSize, "result");
}
return ds;
}
}
}
以上是我根據SqlHelper、OledbHelper類修改而來。我已經使用過。但是不確定是否完善,因為我對SQLite接觸時間還不長。歡迎大家批評指正。
② android平台上怎麼操作sqlite資料庫
這個資料庫軟體的好處就是精煉,麻雀雖小五臟俱全。
下面是查詢的一些資料,僅供參考。
$ adb -s emulator-5554 shell# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.dbSQLite version 3.3.12Enter ".help" for instructions .... enter commands, then quit...sqlite .exit Tips: .exit 表示退出
2. 創建/ 打開資料庫
# sqlite3 testDB + "SQL Sentence" (root user) 3. 操作資料庫 -支持所有的標准操作
sqlite create table myTB (_id Integer Primary Key, name text not null, score double, entryDate date); sqlite insert into myTB (name, score) values ('Steve Jobs', 59.9);sqlite select * from myTB;sqlite select name from myTB order by namesqlite update myTB set score=65 where exam=1 name='Steve Jobs';
4, 創建/刪除 Trigger
# create a trigger script: auto_date.sql
每次插入新的條目,DB會自動添加插入時間。
③ 如何用VB操作SQLite資料庫
可能是ODBC方式,某些許可權受到限制吧(比如不能查master表),這種方式我沒用過,我現在是用vb.net,用connecting 、adapter 等訪問的,這樣好像沒有遇到過問題。
例如:
Dim DataSource As String, sql As String
Dim conn As SQLite.SQLiteConnection
DataSource = Application.StartupPath + "\StoreExecl.db"
' //連接資料庫
conn = New SQLite.SQLiteConnection()
Dim connstr As SQLite.SQLiteConnectionStringBuilder = New SQLite.SQLiteConnectionStringBuilder()
connstr.DataSource = DataSource
Try
conn.ConnectionString = connstr.ToString()
conn.Open()
Me.RTxt1.Text = "系統已連接本地資料庫,成功!"
catch
endtry
④ 如何在android中使用sqlite資料庫
android 中SQliteDatabase資料庫使用SQLiteOpenHelper輔助類來創建SQLite資料庫視圖,如下代碼:
create view 表名 as 定義
SQLiteOpenHelper類是一個輔助類,用於創建或打開資料庫。
該類的使用方法一般是自定義一個子類,繼承自SQLiteOpenHelper,並覆寫其中最關鍵的兩個方法:onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)。當新建一個資料庫時會調用前者,一般在裡面做一些創建表或視圖的操作。資料庫版本升級時則會調用後者。
定義好子類後(假如叫SqlHelper),只要調用SqlHelper對象的getReadableDatabase()方法或getWritableDatabase()方法即可返回一個SQLiteDatabase對象。如果是第一次調用,則會創建資料庫。隨後可使用SQLiteDatabase對象的方法進行數據操作,如:execSQL(), insert(), update(), query(), rawQuery(), delete()等。
⑤ 如何創建sqlite資料庫
上次剛接觸SqlLite,不知道怎麼創建資料庫,現在做下總結:
界面和MYSQL一樣,都是CMD界面,但不是在SQLite.exe中創建資料庫:
首先還是說一下cmd下sqlite的使用網上已經很多了、不做過多的贅述。大致說一下相應的命令就行了、作為學習sqlite的一個記錄
1:選擇下載對應自己系統的sqlite.3exe文件
2:解壓後使用cmd命令進入sqlite3.exe文件所在的路徑執行命令就可以操作做相應的操作。
在進入資料庫之後如果需要退出的話windows下摁ctrl+c就能退出
例如:
創建資料庫命令:sqlite3.exe【資料庫名字.後綴名】
這里比較牛一點的感覺就是創建的資料庫後綴名是任意的、不過注意一點就是:在命令框下執行創建資料庫的時候。
如果沒有為資料庫創建表格、則看不見資料庫文件,所以必須創建表格。
例如:在CMD命令提示符下輸入sqlite3.exetest.db(test.db是資料庫名)回車,執行完後,命令提示符自動跳轉
到"SQLITE>"狀態。這時還是看不到這個資料庫!等表格創建或關閉sqlite3
例如:createtableuser(』用戶名『);這時可以看到sqlite3.exe所在文件夾下的這個資料庫文件了
如果下次還要使用此資料庫時仍然使用sqlite3.exetest.db即可進入此資料庫
創建表格命令:createtabletablename(欄位,欄位)
這里從命令上可以清楚的看到、在sqlite資料庫中創建表格欄位的時候、允許不為欄位申明數據類型。
這是區別於其它關系型資料庫的。
執行插入命令:insertintotablenamevalues(value,values)在、前面我們可以看出、sqlite的操作上和
sqlserver沒什麼太大區別、值得注意的是、insert時區別於sqlserver中、因為sqlserver中允許使用
"inserttablenamevalues(value,value)"這樣的省略式擦入。但是sqlite中是不允許使用省略式插入語句的。
執行刪除語句:deletefromtablenamewhere<條件>
刪除數據語法和sqlserver相同、
刪除表則命令為:droptabletablename
數據更新命令:updatetablenameset欄位=值如果需要條件的話、添加上where語句。
執行查詢語句:select*fromtablename可跟隨where語句
以上就是基礎的sqlite的增刪查改語法和命令。
⑥ 如何使用SQLite3操作資料庫
sqlite3隻能操作資料庫文件。它沒有像mysql那樣的資料庫的概念,它一個文件就是一個資料庫,一個資料庫就是一個文件
所以你打開資料庫文件之後,接下去就是操作「表」了,沒有「資料庫」了
⑦ c#怎麼操作已有的sqlite資料庫
下載system.data.sqlite安裝包,在system.data.sqlite.org上下載對應.NET Framework x.x版本的安裝包。安裝system.data.sqlite,按照提示一步一步執行即可。
下載SQLiteStudio,直接運行exe文件。創建資料庫,以及操作數據表等等。
環境搭建好後就開始創建C#工程了,這里舉例創建了一個Winform工程。在工程里引入system.data.sqlite.dll。注意:引用窗口打開後選擇瀏覽,在安裝目錄下找到dll。默認安裝路徑是 C:\Program Files\System.Data.SQLite\2010\bin。如果不是使用VS2010,路徑會不同
除了引用system.data.sqlite以外,還需要把SQLite.Interop.dll復制到程序根目錄。
5
至此C#操作SQLite的開發環境就搭建好了。
⑧ 安卓怎麼讀取sqlite資料庫
安裝SQLite Expert Professional 可以在網上下載,我下載的是試用版,沒有找注冊碼,但是試用不影響使用,反正用幾次查看到資料庫操作沒有錯誤就不用這個工具了。當然也可以使用Eclipse插件DDMS來查看,也可以使用Android工具包中的adb工具來查看。android項目中的sqlite資料庫位於/data/data/項目包/databases中。先介紹使用DDMS導出sqlite資料庫的操作和使用adb工具訪問sqlite資料庫。
首先打開android項目的調試模式,然後找到顯示DDMS
切換到DDMS,顯示File Explorer窗口,找到/data/data/ 如下圖1 ,
然後找到程序包的文件夾,打開databases,就能看到sqlite資料庫文件了。選擇將其導出。如下圖2.
這樣就把sqlite資料庫文件以文件的方式導出來了,然後使用sqlite界面管理工具如SQLite Expert Professional可以打開該資料庫了。其他 sqlite界面管理工具如sqlite administrator、sqlite man或者firefox插件sqlite manager也可以打開該資料庫。
使用adb工具訪問sqlite資料庫
Android Debug Bridge(ADB)是Android的一個通用調試工具,它可以更新設備或模擬器中的代碼,可以管理預定埠,可以在設備上運行shell命令,我們 知道android是基於linux內核,它的內部文件結構也是採用linux文件組織方式,因此訪問它的文件結構需要使用shell。這次我們就會用 shell來訪問android應用中的sqlite資料庫文件。
1、運行cmd,切換到android-sdk目錄,運行adb.exe,加上參數shell,出現#號就代表進入了shell命令模式,注意adb要在Android模擬器運行時才能進入shell:如下圖
進入資料庫所在目錄:
shell命令記住兩個基本命令ls和cd,類似windows命令提示行中的dir和cd,代表列出當前目錄下文件列表和進入到指定目錄。了解這兩個命令之後,就可以找到data/data/項目包名/databases 如下圖1, 找到資料庫文件如下圖2。
使用sqlite管理工具來進行資料庫操作
鍵入sqlite3 資料庫名就進入了sqlite管理模式了。
如下圖
設置sqlite環境變數:
在android的sdk中自帶了sqlite3.exe,這是sqlite的官方管理工具,它是一個命令行工具。為了使用方便,將其路徑注冊到系 統環境變數path中,即將;%Android_Home%加在Path中,這樣只樣運行sqlite3,就能直接打開sqlite管理工具了。
如下圖:
8
使用sqlite管理資料庫:
sqlite命令行工具默認是以;結束語句的。所以如果只是一行語句,要在末尾加;,或者在下一行中鍵入;,這樣sqlite命令才會被執行。
sqlite常用命令:
.tables--查看資料庫的表列表
.exit--退出sqlite命令行
其他命令可隨時.help查看幫助。sql命令可直接在此命令行上執行即可: