我在 SQLite 数据库程序中有一些错误,它在 android studio 中显示 "table user has no column named psize (code 1)"
I have some error in SQLite database program which shows "table user has no column named psize (code 1)" in android studio
我做了一个android程序,它是数据库程序。它只需要从 EditText 中获取数据并将其存储到 SQLite 数据库中。但是,问题是它无法存储数据并放弃一个错误,当程序为 运行 时,只能在 LOGCAT 中看到该错误。这是我的 DBHelper 代码,它有助于创建 table:
public class DbHelper extends SQLiteOpenHelper {
static String DATABASE_NAME = "userdata";
public static final String TABLE_NAME = "user";
public static final String KEY_FNAME = "fname";
public static final String KEY_LNAME = "lname";
public static final String KEY_PSIZE = "psize";
public static final String KEY_PPRICE = "pprice";
public static final String KEY_ID = "id";
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, 2);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE "
+ TABLE_NAME + "("
+ KEY_ID + " INTEGER PRIMARY KEY, "
+ KEY_FNAME + " TEXT, "
+ KEY_LNAME + " TEXT, "
+ KEY_PSIZE + " NUMBER, "
+ KEY_PPRICE + " NUMBER);";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}}
此代码不会在 activity(它应该显示的位置)中显示数据库数据,但会给出错误:
"table user has no column named psize (code 1)"
我确定这里存在问题,但我无法找出答案。
我认为 Sqlite 没有 NUMBER 类型的字段。这些是所有受支持的字段:
整数:
智力
整数
TINYINT
SMALLINT
MEDIUMINT
BIGINT
无符号大整数
INT2
INT8
文本
字符(20)
VARCHAR(255)
可变字符 (255)
NCHAR(55)
原生字符(70)
NVARCHAR(100)
文本
- CLOB
NONE
BLOB
未指定数据类型
真实
真实
双倍
双精度
浮动
数字
- 数字
十进制(10,5)
布尔值
日期
日期时间
查看更多信息:https://www.sqlite.org/datatype3.html
尝试使用整数,看看是否有问题。
我做了一个android程序,它是数据库程序。它只需要从 EditText 中获取数据并将其存储到 SQLite 数据库中。但是,问题是它无法存储数据并放弃一个错误,当程序为 运行 时,只能在 LOGCAT 中看到该错误。这是我的 DBHelper 代码,它有助于创建 table:
public class DbHelper extends SQLiteOpenHelper {
static String DATABASE_NAME = "userdata";
public static final String TABLE_NAME = "user";
public static final String KEY_FNAME = "fname";
public static final String KEY_LNAME = "lname";
public static final String KEY_PSIZE = "psize";
public static final String KEY_PPRICE = "pprice";
public static final String KEY_ID = "id";
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, 2);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE "
+ TABLE_NAME + "("
+ KEY_ID + " INTEGER PRIMARY KEY, "
+ KEY_FNAME + " TEXT, "
+ KEY_LNAME + " TEXT, "
+ KEY_PSIZE + " NUMBER, "
+ KEY_PPRICE + " NUMBER);";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}}
此代码不会在 activity(它应该显示的位置)中显示数据库数据,但会给出错误:
"table user has no column named psize (code 1)"
我确定这里存在问题,但我无法找出答案。
我认为 Sqlite 没有 NUMBER 类型的字段。这些是所有受支持的字段:
整数:
智力
整数
TINYINT
SMALLINT
MEDIUMINT
BIGINT
无符号大整数
INT2
INT8
文本
字符(20)
VARCHAR(255)
可变字符 (255)
NCHAR(55)
原生字符(70)
NVARCHAR(100)
文本
- CLOB
NONE
BLOB
未指定数据类型
真实
真实
双倍
双精度
浮动
数字 - 数字
十进制(10,5)
布尔值
日期
日期时间
查看更多信息:https://www.sqlite.org/datatype3.html 尝试使用整数,看看是否有问题。