title: Caused by: android.database.sqlite.SQLiteException: no such table: strings: , while compiling: SELECT id, string FROM strings WHERE id =?
body: <p>I get this Error</p>
  
  <hr>
  
  <pre><code>07-16 20:58:27.299: E/AndroidRuntime(14005): Caused by: android.database.sqlite.SQLiteException: no such table: strings: , while compiling: SELECT id, string FROM strings WHERE  id = ?
  </code></pre>
  
  <hr>
  
  <p>I hava StringDB class that has ID and String to store objects of this class into SQLite Database. Please Debug it and give a solution. Here is the code:</p>
  
  <pre><code>public class MySQLiteHelper extends SQLiteOpenHelper {
  
  
  // Database Version
  private static final int DATABASE_VERSION = 2;
  // Database Name
  private static final String DATABASE_NAME = "StringDB";
  
  public MySQLiteHelper(Context context) {
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
  }
  
  @Override
  public void onCreate(SQLiteDatabase db) {
      // SQL statement to create StringDB table
      String CREATE_StringDB_TABLE = "CREATE TABLE StringDBs ( " +
              "id INTEGER PRIMARY KEY AUTOINCREMENT, " +"string"+ "TEXT )";
  
      // create StringDBs table
      db.execSQL(CREATE_StringDB_TABLE);
  }
  
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // Drop older StringDBs table if existed
      db.execSQL("DROP TABLE IF EXISTS StringDBs");
  
      // create fresh StringDBs table
      this.onCreate(db);
  }
  //---------------------------------------------------------------------
  
  /**
   * CRUD operations (create "add", read "get", update, delete) StringDB + get all StringDBs + delete all StringDBs
   */
  
  // StringDBs table name
  private static final String TABLE_STRINGS = "strings";
  
  // StringDBs Table Columns names
  private static final String KEY_ID = "id";
  private static final String KEY_STRING= "string";
  
  private static final String[] COLUMNS = {KEY_ID,KEY_STRING};
  
  public void addStringDB(StringDB string){
  
      // 1. get reference to writable DB
      SQLiteDatabase db = this.getWritableDatabase();
  
      // 2. create ContentValues to add key "column"/value
      ContentValues values = new ContentValues();
      values.put(KEY_STRING, string.getString()); // get author
  
      // 3. insert
      db.insert(TABLE_STRINGS, // table
              null, //nullColumnHack
              values); // key/value -&gt; keys = column names/ values = column values
  
      // 4. close
      db.close();
  }
  
  public StringDB getStringDB(int id){
  
      // 1. get reference to readable DB
      SQLiteDatabase db = this.getReadableDatabase();
  
      // 2. build query
      Cursor cursor =
              db.query(TABLE_STRINGS, // a. table
              COLUMNS, // b. column names
              " id = ?", // c. selections
              new String[] { String.valueOf(id) }, // d. selections args
              null, // e. group by
              null, // f. having
              null, // g. order by
              null); // h. limit
  
      // 3. if we got results get the first one
      if (cursor != null)
          cursor.moveToFirst();
  
      // 4. build StringDB object
      StringDB res=new StringDB();
      res.setId(Integer.parseInt(cursor.getString(0)));
      res.setString(cursor.getString(1));
  
  
      return res;
  }
  
  // Get All StringDBs
  public List&lt;StringDB&gt; getAllStringDBs() {
      List&lt;StringDB&gt; StringDBs = new LinkedList&lt;StringDB&gt;();
  
      // 1. build the query
      String query = "SELECT  * FROM " + TABLE_STRINGS;
  
      // 2. get reference to writable DB
      SQLiteDatabase db = this.getWritableDatabase();
      Cursor cursor = db.rawQuery(query, null);
  
      // 3. go over each row, build StringDB and add it to list
      StringDB StringDB = null;
      if (cursor.moveToFirst()) {
          do {
              StringDB = new StringDB();
              StringDB.setId(Integer.parseInt(cursor.getString(0)));
              StringDB.setString(cursor.getString(1));
  
  
              // Add StringDB to StringDBs
              StringDBs.add(StringDB);
          } while (cursor.moveToNext());
      }
  
      Log.d("getAllStringDBs()", StringDBs.toString());
  
      // return StringDBs
      return StringDBs;
  }
  
   // Updating single StringDB
  public int updateStringDB(StringDB StringDB) {
  
      // 1. get reference to writable DB
      SQLiteDatabase db = this.getWritableDatabase();
  
      // 2. create ContentValues to add key "column"/value
      ContentValues values = new ContentValues();
      values.put("strings", StringDB.getString()); // get author
  
      // 3. updating row
      int i = db.update(TABLE_STRINGS, //table
              values, // column/value
              KEY_ID+" = ?", // selections
              new String[] { String.valueOf(StringDB.getId()) }); //selection args
  
      // 4. close
      db.close();
  
      return i;
  
  }
  
      // Deleting single StringDB
      public void deleteStringDB(StringDB StringDB) {
  
          // 1. get reference to writable DB
          SQLiteDatabase db = this.getWritableDatabase();
  
          // 2. delete
          db.delete(TABLE_STRINGS,
                  KEY_ID+" = ?",
                  new String[] { String.valueOf(StringDB.getId()) });
  
          // 3. close
          db.close();
  
          Log.d("deleteStringDB", StringDB.toString());
  
      }
  }
  </code></pre>