gpt4 book ai didi

android - 为什么 SQLite 上的这个插入命令什么都不做?

转载 作者:太空狗 更新时间:2023-10-29 16:39:58 24 4
gpt4 key购买 nike

我是 android 数据库开发的新手。下面的代码是我的第一个代码。执行此代码后,我在数据库表中看到没有插入任何内容。我的代码有什么问题?

这是我的 dbHelper 类:

public class DbHelper extends SQLiteOpenHelper{

public DbHelper(Context context) {
super(context, "shit.db", null, 1);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table users (userID integer primary key autoincrement,name text,family text,age integer);";
Log.d("Ehsan", sql);
db.execSQL(sql);
}

@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub

}

}

这是我主要 Activity 的 onCreate 方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("Ehsan", "Started");

DbHelper db = new DbHelper(this);
Log.d("Ehsan", "DB Created");
SQLiteDatabase mydb =db.getWritableDatabase();

ContentValues cv = new ContentValues();
cv.put("name", "Ehsan");
cv.put("family", "Shirzadi");
cv.put("age", 29);
Log.d("Ehsan", "Record inserting");
long id = mydb.insert("users",null, cv);
Log.d("Ehsan", "Record inserted");
}

最佳答案

有几点:

首先删除分号 ; 这个字符只会造成问题。其次,您将年龄列指定为整数,因此您应该将整数而不是字符串放入 ContentValues:

cv.put("age", 29);

现在应该可以了。

注意:列也区分大小写,因此您应该保持相同的大小写。对于这样的问题(不正确的列名),通常建议使用保留列名的静态字段:

public static final String KEY_AGE = "age";
...

关于android - 为什么 SQLite 上的这个插入命令什么都不做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19422398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com