在SQLite中BOOL值的类型是什么?我想在我的表中存储TRUE/FALSE值。

我可以创建一个INTEGER列,并在其中存储0或1的值,但这不是实现BOOL类型的最佳方式。

有办法吗?


当前回答

另一种方法是TEXT列。然后在从数据库保存/读取值之前/之后,在布尔值和String值之间转换布尔值。

例如,你有"boolValue = true;"

字符串:

//convert to the string "TRUE"
string StringValue = boolValue.ToString;  

回到boolean:

//convert the string back to boolean
bool Boolvalue = Convert.ToBoolean(StringValue);

其他回答

SQLite没有原生布尔数据类型。根据数据类型文档:

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

数据类型: SQLite没有单独的布尔存储类。相反,布尔值存储为整数0 (false)和1 (true)。

你可以这样把布尔值转换成int值:

int flag = (boolValue)? 1 : 0;

你可以把int转换回boolean,如下所示:

 // Select COLUMN_NAME  values from db. 
 // This will be integer value, you can convert this int value back to Boolean as follows
Boolean flag2 = (intValue == 1)? true : false;

如果你想探索sqlite,这里有一个教程。 我在这里给出了一个答案。这对他们有用。

使用值为0和1的Integer数据类型是最快的。

你可以用下面的方法来简化上面的方程:

boolean flag = sqlInt != 0;

如果布尔值的int表示(sqlInt)为0 (false),则布尔值(flag)为false,否则为true。

简洁的代码总是更好的工作:)

另一种方法是TEXT列。然后在从数据库保存/读取值之前/之后,在布尔值和String值之间转换布尔值。

例如,你有"boolValue = true;"

字符串:

//convert to the string "TRUE"
string StringValue = boolValue.ToString;  

回到boolean:

//convert the string back to boolean
bool Boolvalue = Convert.ToBoolean(StringValue);