SQLiteDatabase.insert() 和 SQLiteDatabase.execSQL( "insert into ..." ) 不起作用



我正在用Java开发Android应用程序。在我的应用程序中,除其他事项外,我需要在数据库中存储地址。我的地址存储在一个名为"地址"的表中。本表定义如下:

CREATE TABLE "adresse" (
"numero_rue"  TEXT,
"type_voie"   TEXT,
"voie"        TEXT,
"code_postal" TEXT,
"ville"       TEXT
);

我试着用两种不同的方法在我的表中插入一个地址:

public void setAdresse(String numRue, String typeVoie, String voie, String codePostal, String ville) {
// First one
ContentValues values = new ContentValues();
values.put("numero_rue" , numRue    );
values.put("type_voie"  , typeVoie  );
values.put("voie"       , voie      );
values.put("code_postal", codePostal);
values.put("ville"      , ville     );
db.insert("adresse", null, values);
// Second one
String req = "insert into adresse (numero_rue, type_voie, voie, code_postal, ville) values";
req += "("" + numRue + "","" + typeVoie + "","" + voie + "","" + codePostal + "","" + ville + "")";
db.execSQL(req);
}

我在这个方法中调用setAdresse(...)方法:

public void valider(View paramView) {
[ data recovery without problems ]
final DatabaseAccess db = DatabaseAccess.getInstance(this.getApplicationContext());
db.open();
db.setAdresse(numRue, typeVoie, voie, codePostal, ville);
db.close();
}

我向您展示了我的构造函数,我的open(),close()getInstance()方法:

private DatabaseAccess(Context context) { this.openHelper = new DatabaseOpenHelper(context); }
public static DatabaseAccess getInstance(Context context) {
if( instance == null ) instance = new DatabaseAccess(context);
return instance;
}
public void open() { this.db = openHelper.getWritableDatabase(); }
public void close() { if( this.db != null ) this.db.close(); }

我的问题是插入数据到表不工作。我没有在日志中发现错误,我的应用程序也没有崩溃。我不认为这是一个代码错误,有人告诉我这可能与我的"驱动程序使用"有关。

你可以查看这个链接吗?这是一个用于插入sqlite表的github示例项目

最新更新