私は本当にこのコードに多くの時間を費やしてきましたが、データベースが機能していない理由はわかりません
1行だけ挿入したいので、この機能を作成しました:
void insertfav(文字列 k) {
myDataBase = khol();
Cursor cur = myDataBase.rawQuery("SELECT " + colname + " from "
+ deptTable + " WHERE " + col3 + "=" + "'" + k + "'",
new String[] {});
cur.moveToFirst();
String area = cur.getString(cur.getColumnIndexOrThrow(colname));
cur = myDataBase.rawQuery("SELECT " + col2 + " from " + deptTable
+ " WHERE " + col3 + "=" + "'" + k + "'", new String[] {});
cur.moveToFirst();
String disease = cur.getString(cur.getColumnIndexOrThrow(col2));
myDataBase.rawQuery(
"INSERT INTO " + favtable + " ("+colname+", "+col2+", "+col3+")"
+ "Values (" + "'" + area + "'" + ", " + "'" + disease
+ "'" + ", " + "'" + k + "'" + ")", new String[] {});
myDataBase.close();
}
このクエリは、sqlite ブラウザーで実行すると正常に動作しますが、エミュレーターでアプリを実行しているときにこの関数が実際に呼び出されると、何も挿入されません。
khol() はデータベースを開く関数です。khol() 関数のコードは次のとおりです。
public SQLiteDatabase khol() throws SQLException {
// Open the database
String myPath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(myPath, null,
SQLiteDatabase.OPEN_READWRITE);
return myDataBase;
}
ここで、DB_PATH と DB_NAME は次のとおりです。
private static String DB_PATH = "/data/data/example.SQLitetest/";
private static String DB_NAME = "desicures.db";
khol() は他のクエリでは正常に動作していますが、ここで何か間違ったことをしている可能性があります...
助けてください...