2012-11-30 27 views
1

我在執行我的android應用程序時出現此錯誤。我創建了一個文件中的SQLite數據庫稱爲MySQLitehelper.java這對於創建表的下面幾行:編譯SELECT語句時沒有這樣的列

public static final String COLUMN_ID = "GWid"; 
    public static final String COLUMN_DATE = "DateGWU"; 
    public static final String COLUMN_LOCATION = "location"; 
    public static final String COLUMN_TIME = "time"; 

    public static final String TABLE_NAME = "UPDTable"; 

    private static final String DATABASE_NAME = "UPDdb_version6"; 
    private static final int DATABASE_VERSION = 6; 

    private final Context context; 
    GetSet getset = new GetSet(); 
    public void GetIdForGwid(GetSet get) 
    { 
    getset=get; 
    } 

    // Database creation sql statement 
    private static final String DATABASE_CREATE = "CREATE TABLE " + TABLE_NAME + 
           " (" +COLUMN_ID+ " integer," + COLUMN_DATE + "VARCHAR," + 
           COLUMN_LOCATION+" VARCHAR," +COLUMN_TIME +" VARCHAR);"; 

    private static final String DATABASE_INSERT = "INSERT INTO " +TABLE_NAME + 
               " Values (47688507,'DEC-07-2012','MARVIN 203','20:00');"; 

在同一個文件中我有我的執行SQL SELECT查詢,但給我的異常沒有聲明這樣的列發現DateGWU

public Cursor getRecord() throws SQLException 
{ 
     Cursor mCursor = 
     db.query(true, TABLE_NAME, new String[] {COLUMN_ID, 
     COLUMN_DATE, COLUMN_LOCATION, COLUMN_TIME}, 
     COLUMN_ID + "= 47688507", null, null, null, null, null); //HARDCODED. Please make it dynamic 
     if (mCursor != null) 
     { 
      mCursor.moveToFirst(); 
     } 
return mCursor; 
} 

我有點卡住,不知道我要去哪裏錯了。

logcat的

11-30 04:57:50.832: E/SQLiteLog(12912): (1) no such column: DateGWU 
11-30 04:57:50.842: D/AndroidRuntime(12912): Shutting down VM 
11-30 04:57:50.852: W/dalvikvm(12912): threadid=1: thread exiting with uncaught exception (group=0x40a70930) 
11-30 04:57:50.952: E/AndroidRuntime(12912): FATAL EXCEPTION: main 
11-30 04:57:50.952: E/AndroidRuntime(12912): android.database.sqlite.SQLiteException: no such column: DateGWU (code 1): , while compiling: SELECT DISTINCT GWid, DateGWU, location, time FROM UPDTable WHERE GWid= '47688507' 
11-30 04:57:50.952: E/AndroidRuntime(12912): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
11-30 04:57:50.952: E/AndroidRuntime(12912): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882) 
11-30 04:57:50.952: E/AndroidRuntime(12912): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493) 
11-30 04:57:50.952: E/AndroidRuntime(12912): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 
11-30 04:57:50.952: E/AndroidRuntime(12912): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) 
11-30 04:57:50.952: E/AndroidRuntime(12912): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37) 
11-30 04:57:50.952: E/AndroidRuntime(12912): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) 
11-30 04:57:50.952: E/AndroidRuntime(12912): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314) 
11-30 04:57:50.952: E/AndroidRuntime(12912): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1161) 
11-30 04:57:50.952: E/AndroidRuntime(12912): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1032) 
11-30 04:57:50.952: E/AndroidRuntime(12912): at com.example.upd.MySQLitehelper.getRecord(MySQLitehelper.java:125) 
+0

@ShreyaShah:類型COLUMN_ID是整數。我嘗試使用'47688507',但有錯誤 – noobcoder

+0

db.query(TABLE_NAME,new String [] {COLUMN_ID, COLUMN_DATE,COLUMN_LOCATION,COLUMN_TIME}, COLUMN_ID +「=?」,new String [] {String.valueOf 47688507)},null,null,null,null);我希望這是如何運行查詢 –

+0

@noobcoder你有沒有嘗試我的答案? – Nikhil

回答

3

請更改數據庫插入語句

private static final String DATABASE_INSERT = "INSERT INTO " +TABLE_NAME + " (" +COLUMN_ID+ " ," + COLUMN_DATE + "," + 
           COLUMN_LOCATION+" ," +COLUMN_TIME +")" + 
               " Values (47688507,'DEC-07-2012','MARVIN 203','20:00');"; 
+0

沒有變化。錯誤仍然存​​在。 – noobcoder

+0

請清理項目並重試。 – Nikhil

+0

感謝人....它的工作。我沒有得到它背後的原因。但現在,它正在工作 – noobcoder

6

你有

private static final String DATABASE_CREATE = "CREATE TABLE " + TABLE_NAME + 
          " (" +COLUMN_ID+ " integer," + COLUMN_DATE + "VARCHAR," + 
          COLUMN_LOCATION+" VARCHAR," +COLUMN_TIME +" VARCHAR);"; 

將其更改爲

private static final String DATABASE_CREATE = "CREATE TABLE " + TABLE_NAME + 
          " (" +COLUMN_ID+ " integer," + COLUMN_DATE + " VARCHAR," + 
          COLUMN_LOCATION+" VARCHAR," +COLUMN_TIME +" VARCHAR);"; 

注意的空間:

COLUMN_DATE +「VA RCHAR,」

COLUMN_DATE + 「VARCHAR,」

+0

好抓人。 –

+0

@Robin Chander:Good catch bro。但同樣的問題。我的應用意外關閉 – noobcoder

相關問題