没有这样的表 – 在SQLite Android 中插入错误值

我想开发一个应用程序,我需要在Android中使用SQLite数据库。 下面是显示的代码,它实现了数据库及其应用程序所需的所有操作以及随机数据(只是为了首先成功实现逻辑)。

此代码编写在DBHelperDisplay.java中,由MainActivity.java通过intent调用。

我的DBHelperDisplay.java:

package course.examples.jumboquest; import java.util.Random; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; //import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; //import android.content.Intent; import android.os.CountDownTimer; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.DatabaseUtils; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase; public class DBHelperDisplay extends ActionBarActivity { TextView tv; DBHelper myDB; RadioGroup radioChoices; RadioButton rbtChoice; Button btSubmit; String choice1; String choice2; String choice3; String choice4; String strAns; CustomTimer cdt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dbhelper_display); cdt = new CustomTimer(20000, 1000); cdt.start(); myDB = new DBHelper(this); myDB.insertQuestion(1, "who is the team member whose name starts with s?", "Vinita", "Akanksha", "Swati", "Megha", "Swati"); myDB.insertQuestion(2, "who is the team member whose name starts with m?", "Vinita", "Akanksha", "Swati", "Megha", "Megha"); myDB.insertQuestion(3, "who is the team member whose name starts with a?", "Vinita", "Akanksha", "Swati", "Megha", "Akanksha"); myDB.insertQuestion(4, "who is the team member whose name starts with v?", "Vinita", "Akanksha", "Swati", "Megha", "Vinita"); myDB.insertQuestion(5, "who is the team member whose name ends with i?", "Vinita", "Akanksha", "Swati", "Megha", "Swati"); Cursor rs = myDB.getData(); String Question = rs.getString(rs.getColumnIndex(DBHelper.Col_Ques)); choice1 = rs.getString(rs.getColumnIndex(DBHelper.Col_Choice1)); choice2 = rs.getString(rs.getColumnIndex(DBHelper.Col_Choice2)); choice3 = rs.getString(rs.getColumnIndex(DBHelper.Col_Choice3)); choice4 = rs.getString(rs.getColumnIndex(DBHelper.Col_Choice4)); strAns = rs.getString(rs.getColumnIndex(DBHelper.Col_Ans)); tv = (TextView) findViewById(R.id.timertxt); final TextView quest = (TextView) findViewById(R.id.quest); quest.setText(Question); //final TextView ans = (TextView) findViewById(R.id.ans); Button btClear = (Button)findViewById(R.id.btClear); btClear.setText("CLEAR"); addListenerRadioChoices() ; btClear.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { //ans.setText(""); } }); } public void addListenerRadioChoices(){ radioChoices = (RadioGroup) findViewById(R.id.radioChoices); ((RadioButton) radioChoices.getChildAt(0)).setText(choice1); ((RadioButton) radioChoices.getChildAt(1)).setText(choice2); ((RadioButton) radioChoices.getChildAt(2)).setText(choice3); ((RadioButton) radioChoices.getChildAt(3)).setText(choice4); btSubmit = (Button)findViewById(R.id.btSubmit); btSubmit.setText("SUBMIT"); btSubmit.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { int selected = radioChoices.getCheckedRadioButtonId(); rbtChoice = (RadioButton) findViewById(selected); String Ans = rbtChoice.getText().toString(); if(Ans.equalsIgnoreCase(strAns)){ cdt.cancel(); //ans.setText(" ANSWER"); } /* else{ // ans.setText("WRONG ANSWER"); }*/ } }); } public class CustomTimer extends CountDownTimer{ //TextView ed; public CustomTimer(long millisInFuture, long countDownInterval){ super(millisInFuture, countDownInterval); } @Override public void onTick(long millisUntilFinished){ //current = millisUntilFinished/1000; tv.setText("Time Left:" + millisUntilFinished/1000); } @Override public void onFinish() { tv.setText("Time Up - lost the game!"); } } public class DBHelper extends SQLiteOpenHelper { public static final String Database_Name = "Questions.db"; public static final String Table_Name = "Comics"; public static final String Col_ID = "id"; public static final String Col_Ques = "question"; public static final String Col_Choice1 = "choice1"; public static final String Col_Choice2 = "choice2"; public static final String Col_Choice3 = "choice3"; public static final String Col_Choice4 = "choice4"; public static final String Col_Ans = "answer"; public DBHelper(Context context){ super(context, Database_Name, null, 1); } @Override public void onCreate(SQLiteDatabase db){ // TODO Auto-generated method stub db.execSQL( "CREATE TABLE Comics" + "(id integer primary key, question text, choice1 text, choice2 text, choice3 text, choice4 text, answer text)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub db.execSQL("DROP TABLE IF EXISTS Comics"); onCreate(db); } public boolean insertQuestion(int id, String question, String choice1, String choice2, String choice3, String choice4, String answer){ SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("id",id); contentValues.put("question",question); contentValues.put("choice1",choice1); contentValues.put("choice2",choice2); contentValues.put("choice3",choice3); contentValues.put("choice4",choice4); contentValues.put("answer",answer); db.insert("Comics", null, contentValues); db.close(); return true; } public Cursor getData(){ SQLiteDatabase db = this.getReadableDatabase(); int numRows = (int)DatabaseUtils.queryNumEntries(db,Table_Name); int min = 1; int max = numRows; Random r = new Random(); int id = r.nextInt(max - min + 1) + min; Cursor res= db.rawQuery("Select * from Comics where id = " + id + "", null); return res; } } 

}

我的AndroidManifest.xml文件:

              

执行上面的代码时,我收到以下错误:

logcat文件

我搜索了很多,发现很多堆栈溢出链接有同样的问题,但仍然没有解决。 我是这个话题的新手。 请帮帮我。

logCat file2

我有两个适配器:

公共类DBController_for_drivinglicense扩展SQLiteOpenHelper {

 public DBController_for_drivinglicense(Context applicationcontext) { super(applicationcontext,"nozadb", null, 1); } //Creates Table @Override public void onCreate(SQLiteDatabase database) { String query; query = "CREATE TABLE if not exists drivinglicense ( id INTEGER PRIMARY KEY, comment TEXT,rates float,names TEXT,date DEFAULT CURRENT_TIMESTAMP, udpateStatus TEXT)"; database.execSQL(query); } 

第一个适配器是:

 public DBController_for_landregistration(Context applicationcontext) { super(applicationcontext,"nozadb", null, 1); } @Override public void onCreate(SQLiteDatabase database) { String query; query = "CREATE TABLE if not exists landregistration ( id INTEGER PRIMARY KEY, comment TEXT,rates float,names TEXT,date DEFAULT CURRENT_TIMESTAMP, udpateStatus TEXT)"; database.execSQL(query); } 

当我把第二个改为:

公共类DBController_for_drivinglicense扩展SQLiteOpenHelper {

 public DBController_for_drivinglicense(Context applicationcontext) { super(applicationcontext,"nozadb", null, 2); } //Creates Table @Override public void onCreate(SQLiteDatabase database) { String query; query = "CREATE TABLE if not exists drivinglicense ( id INTEGER PRIMARY KEY, comment TEXT,rates float,names TEXT,date DEFAULT CURRENT_TIMESTAMP, udpateStatus TEXT)"; database.execSQL(query); }