没有这样的表SQLException

时间:2013-10-15 12:06:53

标签: android

我使用SQLite创建了一个数据库。现在我想使用Android应用程序将数据插入到该表中。

我已经在SQLiteOpenHelper中编写了所有这些代码:

try
        {
        SQLiteDatabase db=this.getWritableDatabase();
        ContentValues values=new ContentValues();
        values.put(key_id, 10);
        values.put(key_name,"neha");

        db.insert(database_table, null, values);
        db.close();
        }
        catch(Exception e)
        {
            System.out.println(e);          
        }

然后运行该应用程序。它不会抛出这样的表异常。

我已经跟随"data/data/[your_package_name]/databases/"然后"pull a file from device"所有这些步骤,但数据库无法进入模拟器。

有什么问题?

1 个答案:

答案 0 :(得分:2)

我认为你是android新手。如果您阅读一些开发人员教程并开始编码,那就太好了。对于当前的应用

1st:为数据库创建一个单独的类(例如:HandleDatabase.java)

第二步:在其中创建一个辅助类(扩展SQLiteOpenHelper)来编写onCreate(用于创建表)和onUpgrade(在版本更改中重新创建表)方法。

3rd:使用当前上下文为HandleDatabase类创建constructure。

4td:在HandleDatabase类中编写所有CUID方法。

EX:

//1st STEP
public class HandleDatabase {
private static final String KEY_ID = "_id";
private static final String KEY_NAME = "_name";
public static final String DATABASE_NAME = "_myrnddb";
public static final String YOUR_TABLE = "_table";
public static final int DATABASE_VERSION = 1;

private final Context ourContext;
private SQLiteDatabase ourDatabase;
private DbHelper ourHelper;

       //2nd STEP
        public class DbHelper extends SQLiteOpenHelper {

        public DbHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);

        }

        @Override
        public void onCreate(SQLiteDatabase db) {
        String createtableQuery = "CREATE TABLE " + YOUR_TABLE + " ("
                + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                + KEY_NAME + " TEXT NOT NULL);";

            db.execSQL(createtableQuery);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)   {
        db.execSQL("DROP TABLE IF EXISTS " + YOUR_TABLE);
        onCreate(db);

        }
    }
   //3rd STEP
   public HandleDatabase(Context c) {
    ourContext = c;
    }

    public HandleDatabase open() throws SQLException {
    ourHelper = new DbHelper(ourContext);
    ourDatabase = ourHelper.getWritableDatabase();
    return this;
    }

    public void close() {
    ourHelper.close();
    }

    //Insertion(4th STEP)
    public long insertData(String name)
        throws SQLException {
    ContentValues cv = new ContentValues();
    cv.put(KEY_NAME , name);
    return ourDatabase.insert(YOUR_TABLE, null, cv);
    }

 }

像这样,您可以选择,更新和删除数据库中的数据。

要了解有关SQLite数据库的信息,您可以关注SQLite Tutorials