SQLite的访问表的内容 [英] SQLite access table content

查看:197
本文介绍了SQLite的访问表的内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经成功地使用下面的类表中插入的数据,但我不知道如何访问这些数据。另外,我想将数据表和数组列表的列内容,如


  COLUMN1 ---> ARRAY1
COLUMN1 --->数组2
COLUMN1 ---> ARRAY3
COLUMN1 ---> array4


 公共类SQLiteAdapter { 公共静态最后弦乐MYDATABASE_NAME =MY_DATABASE;
 公共静态最后弦乐MYDATABASE_TABLE =MY_TABLE;
 公共静态最终诠释MYDATABASE_VERSION = 1;
 公共静态最后弦乐KEY_ID =_id;
 公共静态最后弦乐KEY_CONTENT1 =内容1;
 公共静态最后弦乐KEY_CONTENT2 =内容2;
 公共静态最后弦乐KEY_CONTENT3 =Content3;
 公共静态最后弦乐KEY_CONTENT4 =Content4; //创建表MY_DATABASE(ID整数主键,内容文字NOT NULL);
 私有静态最后弦乐SCRIPT_CREATE_DATABASE =
  CREATE TABLE+ MYDATABASE_TABLE +(
  + KEY_ID +整数主键自动增量
  + KEY_CONTENT1 +文本不为空,
  + KEY_CONTENT2 +文本不为空,
  + KEY_CONTENT3 +文本不为空,
  + KEY_CONTENT4 +文字NOT NULL);; 私人SQLiteHelper sqLiteHelper;
 私人SQLiteDatabase sqLiteDatabase; 私人上下文的背景下; 公共SQLiteAdapter(上下文C){     this.context = C;
 } 公共SQLiteAdapter openToRead()抛出android.database.SQLException {
  sqLiteHelper =新SQLiteHelper(背景下,MYDATABASE_NAME,空,MYDATABASE_VERSION);
  sqLiteDatabase = sqLiteHelper.getReadableDatabase();
  返回此;
 } 公共SQLiteAdapter openToWrite()抛出android.database.SQLException {
  sqLiteHelper =新SQLiteHelper(背景下,MYDATABASE_NAME,空,MYDATABASE_VERSION);
  sqLiteDatabase = sqLiteHelper.getWritableDatabase();
  返回此;
 } 公共无效的close(){
  sqLiteHelper.close();
 } 众长插入(字符串内容1,字符串内容2,字符串content3,字符串content4){  ContentValues​​ contentValues​​ =新ContentValues​​();
  contentValues​​.put(KEY_CONTENT1,内容1);
  contentValues​​.put(KEY_CONTENT2,内容2);
  contentValues​​.put(KEY_CONTENT3,content3);
  contentValues​​.put(KEY_CONTENT4,content4);
  返回sqLiteDatabase.insert(MYDATABASE_TABLE,空,contentValues​​);
 } 公众诠释deleteAll(){
  返回sqLiteDatabase.delete(MYDATABASE_TABLE,NULL,NULL);
 } 公共光标queueAll(){
  的String [] =列新的String [] {KEY_ID,KEY_CONTENT1,KEY_CONTENT2,KEY_CONTENT3,KEY_CONTENT4};
  光标光标= sqLiteDatabase.query(MYDATABASE_TABLE,列,
    NULL,NULL,NULL,NULL,NULL);  返回游标;
 } 公共类SQLiteHelper扩展SQLiteOpenHelper {  公共SQLiteHelper(上下文的背景下,字符串名称,
    CursorFactory工厂,诠释的版本){
   超(背景下,名称,厂家,版本);
  }  @覆盖
  公共无效的onCreate(SQLiteDatabase DB){
   // TODO自动生成方法存根
   db.execSQL(SCRIPT_CREATE_DATABASE);
  }  @覆盖
  公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
   // TODO自动生成方法存根
  }
 }
}


解决方案

要访问一个数据库,试试这个。

首先,你必须具有延伸您的SQLiteOpenHelper的类。创建延伸 SQLiteOpenHelper 一个新的类,并呼吁他们在主数据库开幕类。

在这里你去添加这两个块,并叫他们在你的onCreate

 公共光标getShow()
{
    SQLiteDatabase分贝= obj.getReadableDatabase();
    光标C = db.rawQuery(emp中选择*,NULL);
    startManagingCursor(C);
    返回℃;
}公共光标getEvent(光标C)
{
    StringBuilder的SB =新的StringBuilder(数据库: - );
    而(c.moveToNext())
    {
        长的id = c.getLong(0);
        串未= c.getString(1);
        串PW = c.getString(2);
        串UT = c.getString(3);
        sb.append(\\ n+ID: - + ID +
            \\ n+用户名: - +未+
            \\ n+密码: - + PW +\\ n+
            \\ n+用户类型: - + UT +\\ n
        );
    }
    tvTools.setText(某人);
    返回℃;
}

这取了我对的TextView 先前创建并显示三列。现在,在调用这些方法的onCreate()

 光标C = getShow();
getEvent(C);

它每一次为我工作。

I have successfully inserted data in to a table using following class, but I don’t know how to access those data. Also, I want to put data table and their column content in the array list like

column1--->array1
column1--->array2
column1--->array3
column1--->array4

public class SQLiteAdapter {

 public static final String MYDATABASE_NAME = "MY_DATABASE";
 public static final String MYDATABASE_TABLE = "MY_TABLE";
 public static final int MYDATABASE_VERSION = 1;
 public static final String KEY_ID = "_id";
 public static final String KEY_CONTENT1 = "Content1";
 public static final String KEY_CONTENT2 = "Content2";
 public static final String KEY_CONTENT3 = "Content3";
 public static final String KEY_CONTENT4 = "Content4";



 //create table MY_DATABASE (ID integer primary key, Content text not null);
 private static final String SCRIPT_CREATE_DATABASE =
  "create table " + MYDATABASE_TABLE + " ("
  + KEY_ID + " integer primary key autoincrement, "
  + KEY_CONTENT1 + " text not null, "
  + KEY_CONTENT2 + " text not null, "
  + KEY_CONTENT3 + " text not null, "
  + KEY_CONTENT4 + " text not null);";

 private SQLiteHelper sqLiteHelper;
 private SQLiteDatabase sqLiteDatabase;

 private Context context;

 public SQLiteAdapter(Context c){

     this.context=c;
 }

 public SQLiteAdapter openToRead() throws android.database.SQLException {
  sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION);
  sqLiteDatabase = sqLiteHelper.getReadableDatabase();
  return this; 
 }

 public SQLiteAdapter openToWrite() throws android.database.SQLException {
  sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION);
  sqLiteDatabase = sqLiteHelper.getWritableDatabase();
  return this; 
 }

 public void close(){
  sqLiteHelper.close();
 }

 public long insert(String content1, String content2, String content3, String content4){

  ContentValues contentValues = new ContentValues();
  contentValues.put(KEY_CONTENT1, content1);
  contentValues.put(KEY_CONTENT2, content2);
  contentValues.put(KEY_CONTENT3, content3);
  contentValues.put(KEY_CONTENT4, content4);


  return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues);
 }

 public int deleteAll(){
  return sqLiteDatabase.delete(MYDATABASE_TABLE, null, null);
 }

 public Cursor queueAll(){
  String[] columns = new String[]{KEY_ID, KEY_CONTENT1, KEY_CONTENT2, KEY_CONTENT3, KEY_CONTENT4};
  Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns,
    null, null, null, null, null);

  return cursor;
 }

 public class SQLiteHelper extends SQLiteOpenHelper {

  public SQLiteHelper(Context context, String name,
    CursorFactory factory, int version) {
   super(context, name, factory, version);
  }

  @Override
  public void onCreate(SQLiteDatabase db) {
   // TODO Auto-generated method stub
   db.execSQL(SCRIPT_CREATE_DATABASE);
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   // TODO Auto-generated method stub
  }
 } 
}

解决方案

To have access to a database, try this.

First you must be having a class that extends your SQLiteOpenHelper. Create a new class which extends SQLiteOpenHelper and call them in main database opening class.

Here you go add these two chunks and call them in you onCreate method

public Cursor getShow()
{
    SQLiteDatabase db = obj.getReadableDatabase();
    Cursor c = db.rawQuery("select * from emp", null);
    startManagingCursor(c);
    return c;
}

public Cursor getEvent(Cursor c)
{
    StringBuilder sb= new StringBuilder("Data Base:-");
    while(c.moveToNext())
    {
        long id = c.getLong(0);
        String un = c.getString(1);
        String pw = c.getString(2);
        String ut = c.getString(3);
        sb.append("\n"+"id:-"+id+
            "\n"+"Username:-"+un+
            "\n"+"Password:-"+pw+"\n"+
            "\n"+"UserType:-"+ut+"\n"
        );
    }
    tvTools.setText(sb);
    return c;
}

This fetches three columns that i have created earlier and display them on TextView. Now call these method in onCreate().

Cursor c = getShow();
getEvent(c);

It works for me every time.

这篇关于SQLite的访问表的内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆