我不知道什麼是錯在這裏android.database.sqlite.SQLiteException:沒有這樣的表:學生(代碼1):在編譯:
package mytwistedidea.wordpress.com.testingdata;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Message;
import android.util.Log;
import java.util.ArrayList;
/**
* Created by Nishant on 22-02-2017.
*/
public class DatabaseHelper {
static MyHelper helper;
public DatabaseHelper(Context context){
helper = new MyHelper(context);
}
public long insertStudent(int roll, String name, String attended){
SQLiteDatabase sqLiteDatabase = helper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(MyHelper.ROLL,roll);
contentValues.put(MyHelper.NAME,name);
contentValues.put(MyHelper.ATTENDED,attended);
Long id = sqLiteDatabase.insert(MyHelper.TABLE_NAME_STUDENT,null,contentValues);
sqLiteDatabase.close();
return id;
}
public static ArrayList<String> getStudent(Integer roll){
SQLiteDatabase sqLiteDatabase = helper.getReadableDatabase();
ArrayList<Integer> previousRoll = new ArrayList<Integer>();
String columns[] = {MyHelper.ROLL};
String query = "SELECT * FROM "+MyHelper.TABLE_NAME_STUDENT+" WHERE roll='" + roll;
Cursor cursor = sqLiteDatabase.rawQuery(query,null);
if (cursor != null) {
cursor.moveToFirst();
}
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add(cursor.getString(cursor.getColumnIndex(MyHelper.ROLL)));
arrayList.add(cursor.getString(cursor.getColumnIndex(MyHelper.NAME)));
arrayList.add(cursor.getString(cursor.getColumnIndex(MyHelper.ATTENDED)));
return arrayList;
/*
Cursor cursor = sqLiteDatabase.query(MyHelper.TABLE_NAME_STUDENT,columns,null,null,null,null,null);
if(cursor.moveToFirst()){
do{
previousRoll.add(Integer.parseInt(cursor.getString(cursor.getColumnIndex(MyHelper.ROLL))));
}while (cursor.moveToNext());
}if(previousRoll.size() == 0){
previousRoll.add(0,0);
return previousRoll;
}
return previousRoll;*/
}
public static ArrayList<String> getAllStudent(){
SQLiteDatabase sqLiteDatabase = helper.getReadableDatabase();
ArrayList<String> previousStudent = new ArrayList<String>();
String columns[] = {MyHelper.ROLL,MyHelper.NAME,MyHelper.ATTENDED};
Cursor cursor = sqLiteDatabase.query(MyHelper.TABLE_NAME_STUDENT,columns,null,null,null,null,null);
if(cursor.moveToFirst()){
do{
previousStudent.add(cursor.getString(cursor.getColumnIndex(MyHelper.ROLL)));
previousStudent.add(cursor.getString(cursor.getColumnIndex(MyHelper.NAME)));
previousStudent.add(cursor.getString(cursor.getColumnIndex(MyHelper.ATTENDED)));
}while (cursor.moveToNext());
}if(previousStudent.size() == 0){
previousStudent.add(0," ");
return previousStudent;
}
return previousStudent;
}
public static ArrayList<Integer> getStudentRoll(){
SQLiteDatabase sqLiteDatabase = helper.getReadableDatabase();
ArrayList<Integer> previousRoll = new ArrayList<Integer>();
String columns[] = {MyHelper.ROLL};
Cursor cursor = sqLiteDatabase.query(MyHelper.TABLE_NAME_STUDENT,columns,null,null,null,null,null);
if(cursor.moveToFirst()){
do{
previousRoll.add(Integer.parseInt(cursor.getString(cursor.getColumnIndex(MyHelper.ROLL))));
}while (cursor.moveToNext());
}if(previousRoll.size() == 0){
previousRoll.add(0);
return previousRoll;
}
return previousRoll;
}
public static ArrayList<String> getStudentName(){
SQLiteDatabase sqLiteDatabase = helper.getReadableDatabase();
ArrayList<String> previousName = new ArrayList<String>();
String columns[] = {MyHelper.NAME};
Cursor cursor = sqLiteDatabase.query(MyHelper.TABLE_NAME_STUDENT,columns,null,null,null,null,null);
if(cursor.moveToFirst()){
do{
previousName.add(cursor.getString(cursor.getColumnIndex(MyHelper.ROLL)));
}while (cursor.moveToNext());
}if(previousName.size() == 0){
previousName.add(0," ");
return previousName;
}
return previousName;
}
public static ArrayList<Integer> getStudentAttendence(){
SQLiteDatabase sqLiteDatabase = helper.getReadableDatabase();
ArrayList<Integer> previousAttendence = new ArrayList<Integer>();
String columns[] = {MyHelper.ATTENDED};
Cursor cursor = sqLiteDatabase.query(MyHelper.TABLE_NAME_STUDENT,columns,null,null,null,null,null);
if(cursor.moveToFirst()){
do{
previousAttendence.add(Integer.parseInt(cursor.getString(cursor.getColumnIndex(MyHelper.ATTENDED))));
}while (cursor.moveToNext());
}if(previousAttendence.size() == 0){
previousAttendence.add(0,0);
return previousAttendence;
}
return previousAttendence;
}
class MyHelper extends SQLiteOpenHelper{
private static final String DATABASE_NAME = "mystudent.db";
private static final String TABLE_NAME_STUDENT = "student";
private static final int DATABASE_VERSION = 1;
private static final String NAME = "name";
private static final String ROLL = "roll";
private static final String ATTENDED = "attended";
private static final String CREATE_TABLE = "CREATE TABLE"+TABLE_NAME_STUDENT+
"("+ROLL+" INTEGER PRIMARY KEY, "+
NAME+" VARCHAR(255), "+
ATTENDED+" INTEGER);";
private static final String DROP_STUDENT = "DROP TABLE IF EXISTS "+TABLE_NAME_STUDENT;
private Context context;
public MyHelper(Context context){
super(context,DATABASE_NAME,null,DATABASE_VERSION);
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
if(db != null){
try{
db.execSQL(CREATE_TABLE);
}
catch (SQLException e){
e.printStackTrace();
}
}
}
@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
try{
db.execSQL(DROP_STUDENT);
onCreate(db);
}
catch (SQLException e){
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
try{
db.execSQL(DROP_STUDENT);
onCreate(db);
}
catch (SQLException e){
e.printStackTrace();
}
}
}
}
我是新來的數據庫。
我不知道哪個部分是錯的,所以我發佈了整個代碼。
請閱讀以下的空間:[問] [MCVE] [幫助/關於話題] –
好感謝。請參閱代碼。 –