Cursor的簡單使用

2021-07-09 04:13:00 字數 1900 閱讀 3513



使用過 sqlite

資料庫的童鞋對 cursor 應該不陌生,如果你是搞.net 開發你大可以把cursor理解成 ado.net 中的資料集合相當於datareader。今天特地將它單獨拿出來談,加深自己和大家對

android 中使用 cursor 的理解。

關於 cursor

在你理解和使用 android cursor 的時候你必須先知道關於 cursor 的幾件事情:

cursor 是每行的集合。

使用 movetofirst() 定位第一行。

你必須知道每一列的名稱。

你必須知道每一列的資料型別。

cursor 是乙個隨機的資料來源。

所有的資料都是通過下標取得。

關於 cursor 的重要方法:

close()

關閉游標,釋放資源

copystringtobuffer(int columnindex, chararraybuffer buffer)

在緩衝區中檢索請求的列的文字,將將其儲存

getcolumncount()

返回所有列的總數

getcolumnindex(string columnname)

返回指定列的名稱,如果不存在返回-1

getcolumnindexorthrow(string columnname)

從零開始返回指定列名稱,如果不存在將丟擲illegalargumentexception 異常。

getcolumnname(int columnindex)

從給定的索引返回列名

getcolumnnames()

返回乙個字串陣列的列名

getcount()

返回cursor 中的行數

movetofirst()

移動游標到第一行

movetolast()

移動游標到最後一行

movetonext()

移動游標到下一行

movetoposition(int position)

移動游標到乙個絕對的位置

movetoprevious()

移動游標到上一行

下面來看看一小段**:

if (cur.movetofirst() == false)

訪問 cursor 的下標獲得其中的資料

int namecolumnindex = cur.getcolumnindex(people.name);

string name = cur.getstring(namecolumnindex);

現在讓我們看看如何迴圈 cursor 取出我們需要的資料

while(cur.movetonext())

當cur.movetonext() 為假時將跳出迴圈,即 cursor 資料迴圈完畢。

isbeforefirst()

返回游標是否指向之前第一行的位置

isafterlast()

返回游標是否指向第最後一行的位置

isclosed()

如果返回 true 即表示該遊戲標己關閉

有了以上的方法,可以如此取出資料

for(cur.movetofirst();!cur.isafterlast();cur.movetonext())

tip:在android 查詢資料是通過cursor 類來實現的。當我們使用 sqlitedatabase.query()方法時,就會得到cursor物件, cursor所指向的就是每一條資料。結合ado.net 的知識可能好理解一點。

cursor 位於 android.database.cursor類,可見出它的設計是基於資料庫服務產生的。

以上**:

oracle游標cursor簡單使用

oracle游標cursor簡單使用 總共介紹兩種游標 cursor 與 sys refcursor 1 cursor游標使用 sql 簡單cursor游標 students表裡面有name欄位,你可以換做其他表測試 定義 declare 定義游標並且賦值 is 不能和cursor分開使用 curs...

簡單cursor 備忘

declare id nvarchar 20 定義變數來儲存id號 declare date datetime declare dfd nvarchar 200 定義變數來儲存值 set dfd declare mycursor cursor for select mid,createddate f...

sql 中CURSOR 的使用

cursor是游標,常用於指令碼處理。這裡主要介紹自己常用的方法,同時也會把網上的一般格式進行解釋。declare 游標名稱 cursor for select 欄位1,欄位2,欄位3,from 表名 where open 游標名稱 fetch next from 游標名稱 into 變數名1,變數...