2013-10-15 82 views
-1

我已经使用SQLite创建了一个数据库。现在我想使用Android应用程序将数据插入到该表中。没有这样的表SQLException

我写这些代码在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"所有这些步骤,但数据库不会在仿真器上。

什么问题?

+0

没有在数据库中创建的表。 – Riser

+0

可以显示创建数据库,表格和插入的完整代码。 – Ranjit

+0

检查数据库的创建查询。那里肯定有小故障。作为参考:http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ – Dhaval

回答

2

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

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

第二:创建一个辅助类(延伸SQLiteOpenHelper)这里面写的onCreate(创建表)和onUpgrade (在版本更改中重新创建表)方法。

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

4td:将所有CUID方法写入HandleDatabase类。

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

+0

,所以我用这种方式发送了一些example.try的建议。 – Ranjit

+0

是的,这是我的第一个数据库连接应用程序。我有一个更多的查询,当我们调用onCreate()方法时,android应用程序本身创建数据库,或者我们想在sqlite的帮助下手动创建它提示? –

+2

SQLite嵌入到每个Android设备中。您只需定义用于创建和更新数据库的SQL语句。之后,数据库会自动由Android平台管理。如果我的答案帮助你,那么如果你接受它,那么它的优点就是这个链接http://www.vogella.com/articles/AndroidSQLite/article.html#SQLite Android – Ranjit

相关问题