2

sqlite データベースを使用する Android アプリケーションを開発しています。

  1. 主な問題: *このエラーに直面し続けていますが、この問題の原因がわかりません。コメントをお待ちしております。*
  2. 二次的な問題: ユーザーの情報がデータベース内にあるかどうかをアプリケーションで確認する必要がありました。存在しない場合は、システムに何かを機能させたいと考えています。チェック部分はどうするの?以下のようなものを試しました。しかし、そのような列の問題がないため、機能するかどうかはわかりません。

                    String values[] = helper.get_synccontentByEmailID(SettingConstant.EMAIL);
                if(!(values[0] == null)){
    
    
                }
    

--データベースクラス--

    public void onCreate(SQLiteDatabase db) {

    db.execSQL("CREATE TABLE synccontent (" + 
            "tableid INTEGER PRIMARY KEY AUTOINCREMENT, " +
            "emailid_sync TEXT " +
            "contentid TEXT," +
            "contentpath TEXT," +
            "filesize TEXT," +
            "createdtime TEXT,"+
            "createdate TIMESTAMP default current_timestamp);");
}
public String[] get_synccontentByEmailID(String emailid_sync){
    SQLiteDatabase myDB = null;
    String[] returnMsg = null;
    myDB = this.getReadableDatabase();

    Cursor c = myDB.rawQuery("SELECT tableid, emailid_sync, contentid, contentpath, filesize, createdtime" +
            " from synccontent where emailid_sync='"+emailid_sync+"' ", null);
    int emailid_syncColumn = c.getColumnIndex("emailid_sync");              
    int contentidColumn = c.getColumnIndex("contentid");
    int contentpathColumn = c.getColumnIndex("contentpath");
    int filesizeColumn = c.getColumnIndex("filesize");
    int createdtimeColumn = c.getColumnIndex("createdtime");

    if (c.moveToFirst()) {
        do {
            returnMsg = new String[5]; 
            String contentid = c.getString(contentidColumn);
            String contentpath = c.getString(contentpathColumn);
            String filesize = c.getString(filesizeColumn);
            String createdtime = c.getString(createdtimeColumn);

            returnMsg[0] = emailid_sync;
            returnMsg[1] = contentid;
            returnMsg[2] = contentpath;
            returnMsg[3] = filesize;
            returnMsg[4] = createdtime;

        } while (c.moveToNext());
    }

- 主な活動 -

    syncButton = (Button) findViewById(R.id.sync_btn);
    syncButton.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {

                    String values[] = helper.get_synccontentByEmailID(SettingConstant.EMAIL);
                if(!(values[0] == null)){


                }





E/AndroidRuntime(4543): android.database.sqlite.SQLiteException: no such column: contentid: , while compiling: SELECT tableid, emailid_sync, contentid, contentpath, filesize, createdtime from wbm_synccontent where emailid_sync='testing@yahoo.com' 
4

2 に答える 2

2

の後にコンマがありませんemailid_sync TEXT

db.execSQL("CREATE TABLE synccontent (" + 
            "tableid INTEGER PRIMARY KEY AUTOINCREMENT, " +
            "emailid_sync TEXT, " +
            "contentid TEXT," +
            "contentpath TEXT," +
            "filesize TEXT," +
            "createdtime TEXT,"+
            "createdate TIMESTAMP default current_timestamp);");

それは一次問題を修正するはずです、二次への解決策は他の答えで与えられました。大丈夫だと思います。

于 2012-12-03T03:01:46.050 に答える