如何在Android SQlite中添加布尔列

我已经使用以下行为我的ContentProvider创build了一个表:

 static final String CREATE_DB_TABLE = " CREATE TABLE " + CONTACTS_TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, " + " pid TEXT NOT NULL, " + " name TEXT NOT NULL,"+ "number TEXT NOT NULL);"; 

它有4列。 现在我想添加一个布尔值为true / false的列。 如何添加追加/更改此语句,如果我必须添加一个名为“状态”布尔列。

  • 没有closures游标的android的缺点
  • 如何在一个SQLite查询中获取联系人ID,电子邮件,电话号码? 联系人Android优化
  • 什么是android_metadata表?
  • IllegalArgumentException:列无效
  • 如何使用asynchronous任务执行数据库操作
  • 如何访问Android中现有的SQLite数据库?
  • 在Android ContentProvider中连接表和通知ContentObserver的最佳实践
  • 如何加载超过1 MB的数据从SQLite数据库到Android光标?
  • 你可以使用这样的东西:

    创build你的表格:

     static final String CREATE_DB_TABLE = "CREATE TABLE " + CONTACTS_TABLE_NAME " + " (_id INTEGER PRIMARY KEY AUTOINCREMENT," + "..." + " flag INTEGER DEFAULT 0)"; 

    检索您的价值为:

     Boolean flag = (cursor.getInt(cursor.getColumnIndex("flag")) == 1); 

    正如医学博士所说,

    SQLite没有单独的布尔存储类。 相反,布尔值被存储为整数0(假)和1(真)。

    使用下面的ALTER语句 –

     ALTER TABLE CREATE_DB_TABLE ADD status boolean NOT NULL default 0; 

    然后你可以使用Cursor来获得所需的值,然后转换为实际的布尔值 –

     flag=cursor.getString(0).equals("1") 

    您可以使用此标志显示在用户屏幕上。

    参考: http : //www.sqlite.org/datatype3.html

     public enum Status{ TRUE,FALSE; } static final String CREATE_DB_TABLE = " CREATE TABLE " + CONTACTS_TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, " +...... " booleanColumn INTEGER DEFAULT 0);"; 

    //插入时

    将Status.TRUE.ordinal()值传递给数据库和

    //检索时

    交叉检查状态的序数值

    Sqlite不提供任何类来存储布尔值。

    你可以使用0代表false1代表true 。 然后,您必须从数据库中检索这些值后才能转换这些值。