J'essaye de créer une base de données simple dans android, mais la base de données ne crée pas et je ne sais pas pourquoi. J'ai lu beaucoup de solutions mais rien n'aide.Base de données SQLite dans la base de données Android n'a pas créé
C'est la SQLiteOpenHelper classe étendue
public class TodoDB extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "todo.db";
public TodoDB(android.content.Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String query = "CREATE TABLE "+ TaskSchema.TaskColumns.TABLE_NAME + "(" +
TaskSchema.TaskColumns.ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
TaskSchema.TaskColumns.TITLE + " TEXT NOT NULL, " +
TaskSchema.TaskColumns.INFORMATION + " TEXT NOT NULL, " +
TaskSchema.TaskColumns.DATE + " TEXT NOT NULL " +
");";
sqLiteDatabase.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
public void addTask()
{
ContentValues values = new ContentValues();
values.put(TaskSchema.TaskColumns.TITLE, "l");
values.put(TaskSchema.TaskColumns.INFORMATION, "temporal");
values.put(TaskSchema.TaskColumns.DATE,"20-8-16");
this.getWritableDatabase().insert(TaskSchema.TaskColumns.TABLE_NAME,null,values);
}
public String getTask()
{
String args[] = {"l"};
String columns[] = {TaskSchema.TaskColumns.TITLE};
Cursor c = this.getReadableDatabase().query(TaskSchema.TaskColumns.TABLE_NAME,columns, TaskSchema.TaskColumns.TITLE + " LIKE ?",args,null,null,null);
String result = c.getString(c.getColumnIndex(TaskSchema.TaskColumns.TITLE));
return result;
}
}
Ceci est la classe d'activité
public class MainActivity extends AppCompatActivity {
Button addButton;
Button deleteButton;
TodoDB db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addButton = (Button)findViewById(R.id.addButton);
TodoDB db = new TodoDB(this);
db.addTask();
String test = db.getTask();
Toast.makeText(this, test,Toast.LENGTH_SHORT);
}
}
Moyens aider.
Informations supplémentaires: J'ai utilisé le moniteur Android pour trouver la base de données, mais n'est pas dans le périphérique virtuel et j'ai couru l'application dans mon téléphone portable et quand je cherche la base de données, il n'existe pas. lorsque j'essaie de faire une requête, l'application est proche.
Comment savez-vous que la base de données n'est pas créée? – lelloman
Essayez d'ajouter un point-virgule (;) à la fin de la requête. requête doit maintenant être comme: chaîne de requête = "CREATE TABLE "+ TaskSchema.TaskColumns.TABLE_NAME + "(" + TaskSchema.TaskColumns.ID +" INTEGER PRIMARY KEY AUTOINCREMENT," TEXT + TaskSchema.TaskColumns.TITLE + " NOT NULL, "+ TaskSchema.TaskColumns.INFORMATION +" TEXTE NON NUL ", + TaskSchema.TaskColumns.DATE +" TEXT NOT NULL "+ "); "; –
@lelloman J'ai utilisé le moniteur Android pour trouver la base de données, mais ce n'est pas dans le périphérique virtuel et je cours l'application dans mon téléphone portable et quand je cherche la base de données, il n'existe pas. lorsque j'essaie de faire une requête, l'application est proche. –