如何在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的列。 如何添加追加/更改此语句,如果我必须添加一个名为“状态”布尔列。

Related of "如何在Android SQlite中添加布尔列"

你可以使用这样的东西:

创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 。 然后,您必须从数据库中检索这些值后才能转换这些值。