SQLiteDatabase 類別

定義

揭露管理 SQLite 資料庫的方法。

[Android.Runtime.Register("android/database/sqlite/SQLiteDatabase", DoNotGenerateAcw=true)]
public class SQLiteDatabase : Android.Database.Sqlite.SQLiteClosable
[<Android.Runtime.Register("android/database/sqlite/SQLiteDatabase", DoNotGenerateAcw=true)>]
type SQLiteDatabase = class
    inherit SQLiteClosable
繼承
SQLiteDatabase
屬性

備註

揭露管理 SQLite 資料庫的方法。

SQLiteDatabase 具備建立、刪除、執行 SQL 指令及執行其他常見資料庫管理任務的方法。

請參閱 SDK 中的記事本範例應用程式,了解如何建立和管理資料庫。

資料庫名稱必須在同一應用程式內是唯一的,而非跨所有應用程式。

<h3>局部整合 - 階數 BY</h3>

除了 SQLite 預設 BINARY 的整理器外,Android 還提供另外兩個 LOCALIZED,這些工具會隨系統目前的地點而改變,以及 UNICODE,這是 Unicode 整合演算法,並非針對當前所在地量身打造。

Java 文件 android.database.sqlite.SQLiteDatabase

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
SQLiteDatabase(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

欄位

名稱 Description
ConflictAbort
已淘汰.

當發生限制違規時,不會執行回滾,因此同一交易中先前指令的變更會被保留。

ConflictFail
已淘汰.

當發生限制違規時,指令會以回傳碼 SQLITE_CONSTRAINT 中止。

ConflictIgnore
已淘汰.

當發生限制違反時,包含該限制違規的那一列不會入或更改。

ConflictNone
已淘汰.

當未指定衝突行動時,請使用以下指令。

ConflictReplace
已淘汰.

當發生 UNIQUE 限制違規時,造成限制違規的既有列會在插入或更新當前列前被移除。

ConflictRollback
已淘汰.

當發生限制違規時,會立即進行回滾,從而結束目前的交易,指令以回傳代碼 SQLITE_CONSTRAINT 中止。

JournalModeDelete

DELETE寫日記的模式是正常的行為。

JournalModeMemory

MEMORY日誌模式將回滾日誌儲存在揮發性記憶體中。

JournalModeOff

OFF日誌模式會完全停用回滾日誌。

JournalModePersist

PERSIST日誌模式防止每次交易結束時將回滾日誌刪除。

JournalModeTruncate

TRUNCATE日誌模式透過將回滾日誌截斷至零長度而非刪除,來提交交易。

JournalModeWal

WAL日誌模式使用預先寫入日誌,取代回滾日誌來實作交易。

MaxSqlCacheSize

可由 設定 #setMaxSqlCacheSize(int)的絕對最大值。

SqliteMaxLikePatternLength

LIKE 或 GLOB 圖案的最大長度 SQLite 預設 LIKE 與 GLOB 實作中使用的模式匹配演算法,在某些病態情況下可能展現出 O(N^2) 的效能(其中 N 是圖案中的字元數)。

SyncModeExtra

EXTRA同步模式類似FULL同步模式,但新增的是,包含回滾日誌的目錄會在該日誌解除連結後同步,以在日誌模式下提交交易DELETE

SyncModeFull

FULL 同步模式下,SQLite 資料庫引擎會使用 VFS 的 xSync 方法,確保所有內容在繼續前都已安全寫入磁碟表面。

SyncModeNormal

NORMAL同步模式,也就是 SQLite 資料庫引擎,仍會在最關鍵時刻同步,但頻率比模式FULL低。

SyncModeOff

OFF 同步模式下,SQLite 在資料交接到作業系統後立即繼續不同步。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsDatabaseIntegrityOk

對給定資料庫(及所有附加資料庫)執行「pragma integrity_check」,若該資料庫(及其所有附加資料庫)通過 integrity_check,則返回 true,否則為 false。

IsDbLockedByCurrentThread

如果目前執行緒持有與資料庫的活躍連線,則回傳為 true。

IsDbLockedByOtherThreads
已淘汰.

總是回傳 false。

IsOpen

如果資料庫目前開啟,則會回傳真值。

IsReadOnly

如果資料庫以唯讀開啟,則回傳 true。

IsWriteAheadLoggingEnabled

若該資料庫啟用了先寫日誌,則會回傳為真。

JniIdentityHashCode

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
JniPeerMembers

揭露管理 SQLite 資料庫的方法。

LastChangedRowCount

回傳目前交易中最近一個 SQL 陳述式插入、更新或刪除的資料庫列數。

LastInsertRowId

將最後要插入的列的「rowid」回傳到目前連線上。

MaximumSize

回傳資料庫可成長的最大容量。

PageSize

回傳目前資料庫頁面大小,以位元組為單位。 -或- 設定資料庫頁面大小。

Path

取得資料庫檔案的路徑。

PeerReference

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
SyncedTables
已淘汰.

Deprecated.

ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

TotalChangedRowCount

回傳自建立以來,目前連線中已插入、更新或刪除的資料庫列總數。

Version

拿到資料庫版本。 -或- 設定資料庫版本。

方法

名稱 Description
AcquireReference()

取得對該物件的參考。

(繼承來源 SQLiteClosable)
BeginTransaction()

以排斥模式開始交易。

BeginTransactionNonExclusive()

以即時模式開始交易。

BeginTransactionReadOnly()

以延遲模式開始交易,並有 Android 特有的限制,交易為唯讀。

BeginTransactionWithListener(ISQLiteTransactionListener)

以排斥模式開始交易。

BeginTransactionWithListenerNonExclusive(ISQLiteTransactionListener)

以即時模式開始交易。

BeginTransactionWithListenerReadOnly(ISQLiteTransactionListener)

以唯讀模式開始交易,使用 SQLiteTransactionListener 監聽器。

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Close()

揭露管理 SQLite 資料庫的方法。

CompileStatement(String)

將 SQL 陳述式編譯成可重複使用的預編譯陳述式物件。

Create(SQLiteDatabase+ICursorFactory)

建立一個記憶體支援的 SQLite 資料庫。

CreateInMemory(SQLiteDatabase+OpenParams)

建立一個記憶體支援的 SQLite 資料庫。

CreateRawStatement(String)

回傳一個 SQLiteRawStatement 已連結到資料庫的訊息。

Delete(String, String, String[])

方便地刪除資料庫中資料列的方法。

DeleteDatabase(File)

刪除資料庫,包括其日誌檔案及其他可能由資料庫引擎建立的輔助檔案。

DisableWriteAheadLogging()

此方法會禁用 所 #enableWriteAheadLogging()啟用的功能。

Dispose()

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
Dispose(Boolean)

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
EnableWriteAheadLogging()

此方法允許在同一資料庫中平行執行來自多個執行緒的查詢。

EndTransaction()

結束交易。

Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
ExecPerConnectionSQL(String, Object[])

對所有與該資料庫的連線執行該 SQL 陳述式。

ExecSQL(String, Object[])

執行一個不是 SELECT/INSERT/UPDATE/DELETE 的 SQL 語句。

ExecSQL(String)

執行一個不是 SELECT 或其他回傳資料的 SQL 陳述式。

FindEditTable(String)

找到第一個可編輯資料表的名稱。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
Insert(String, String, ContentValues)

方便地將資料列插入資料庫的方法。

InsertOrThrow(String, String, ContentValues)

方便地將資料列插入資料庫的方法。

InsertWithOnConflict(String, String, ContentValues, Conflict)

將資料列插入資料庫的通用方法。

InTransaction()

如果目前執行緒有交易待處理,則回傳為真。

JavaFinalize()

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
MarkTableSyncable(String, String, String)
已淘汰.

標記此資料表為可同步,_sync_dirty則存放在另一表中。

MarkTableSyncable(String, String)
已淘汰.

將此表格標記為可同步。

NeedUpgrade(Int32)

若新版本代碼大於目前資料庫版本,則回傳為真。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
OnAllReferencesReleased()

當最後一次對物件的引用被呼叫 ReleaseReference() or Close()時,會被呼叫。

OnAllReferencesReleasedFromContainer()
已淘汰.

當最後一次對物件的引用被呼叫 #releaseReferenceFromContainer()時呼叫。

(繼承來源 SQLiteClosable)
OpenDatabase(File, SQLiteDatabase+OpenParams)

依照指定方式開啟資料庫 OpenParams parameters

OpenDatabase(String, SQLiteDatabase+ICursorFactory, DatabaseOpenFlags, IDatabaseErrorHandler)

依照指定方式開啟資料庫 OpenParams parameters

OpenDatabase(String, SQLiteDatabase+ICursorFactory, DatabaseOpenFlags)

依照指定方式開啟資料庫 OpenParams parameters

OpenOrCreateDatabase(File, SQLiteDatabase+ICursorFactory)

等同於 openDatabase(file.

OpenOrCreateDatabase(String, SQLiteDatabase+ICursorFactory, IDatabaseErrorHandler)

等同於 openDatabase(file.

OpenOrCreateDatabase(String, SQLiteDatabase+ICursorFactory)

等同於 openDatabase(file.

Query(Boolean, String, String[], String, String[], String, String, String, String, CancellationSignal)

查詢給定的 URL,回傳 a Cursor 覆蓋結果集。

Query(Boolean, String, String[], String, String[], String, String, String, String)

查詢給定的 URL,回傳 a Cursor 覆蓋結果集。

Query(String, String[], String, String[], String, String, String, String)

查詢給定的表格,回傳對結果集的 a Cursor

Query(String, String[], String, String[], String, String, String)

查詢給定的表格,回傳對結果集的 a Cursor

QueryWithFactory(SQLiteDatabase+ICursorFactory, Boolean, String, String[], String, String[], String, String, String, String, CancellationSignal)

查詢給定的 URL,回傳 a Cursor 覆蓋結果集。

QueryWithFactory(SQLiteDatabase+ICursorFactory, Boolean, String, String[], String, String[], String, String, String, String)

查詢給定的 URL,回傳 a Cursor 覆蓋結果集。

RawQuery(String, String[], CancellationSignal)

執行提供的 SQL 並回傳 a Cursor 對結果集。

RawQuery(String, String[])

執行提供的 SQL 並回傳 a Cursor 對結果集。

RawQueryWithFactory(SQLiteDatabase+ICursorFactory, String, String[], String, CancellationSignal)

執行提供的 SQL 並回傳游標覆蓋結果集。

RawQueryWithFactory(SQLiteDatabase+ICursorFactory, String, String[], String)

執行提供的 SQL 並回傳游標覆蓋結果集。

ReleaseMemory()

嘗試釋放 SQLite 儲存但不需正常運作的記憶體。

ReleaseReference()

釋放對該物件的參考,若最後一個引用被釋放則關閉該物件。

(繼承來源 SQLiteClosable)
ReleaseReferenceFromContainer()
已淘汰.

釋放該物件容器擁有的物件參考,若最後一個參考被釋放則關閉該物件。

(繼承來源 SQLiteClosable)
Replace(String, String, ContentValues)

替換資料庫中某一列的便利方法。

ReplaceOrThrow(String, String, ContentValues)

替換資料庫中某一列的便利方法。

SetCustomAggregateFunction(String, IBinaryOperator)

註冊一個可從 SQL 表達式呼叫的自訂聚合函數。

SetCustomScalarFunction(String, IUnaryOperator)

註冊一個自訂的純量函式,可以從 SQL 表達式呼叫。

SetForeignKeyConstraintsEnabled(Boolean)

設定資料庫是否啟用外鍵約束。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetLocale(Locale)

設定此資料庫的地點。

SetLockingEnabled(Boolean)
已淘汰.

透過在關鍵區段周圍設置鎖,控制 SQLiteDatabase 是否具備執行緒安全。

SetMaximumSize(Int64)

設定資料庫可成長的最大容量。

SetMaxSqlCacheSize(Int32)

設定此資料庫備置語句快取的最大容量。

SetTransactionSuccessful()

標記當前交易成功。

ToArray<T>()

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
Update(String, ContentValues, String, String[])

方便地更新資料庫中資料列的方法。

UpdateWithOnConflict(String, ContentValues, String, String[], Conflict)

方便地更新資料庫中資料列的方法。

ValidateSql(String, CancellationSignal)

透過編譯 SELECT 陳述式驗證其有效性。

Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
YieldIfContended()
已淘汰.

暫時結束交易,讓其他執行緒繼續執行。

YieldIfContendedSafely()

暫時結束交易,讓其他執行緒繼續執行。

YieldIfContendedSafely(Int64)

暫時結束交易,讓其他執行緒繼續執行。

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
IJavaPeerable.Finalized()

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

揭露管理 SQLite 資料庫的方法。

(繼承來源 Object)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

揭露管理 SQLite 資料庫的方法。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於