2017-04-03 81 views
-4

我得到錯誤,因爲沒有這樣的列在logcat中,它正在正確插入 我該如何糾正這個問題。由我給出的值正確表示,但SELECT查詢不起作用位於數據庫表中的值。在SQLITE數據庫中沒有這樣的列錯誤

String search = "select * from "+ TABLE_NAME +" Where PHONENO =" +num+ "           
      and NAME = "+name1+" and LASTNAME =" +lastname1; 
      Cursor c = db.rawQuery(search,null); 
      boolean res = c.moveToFirst(); 
     if (res) { 
     String s1 = c.getString(0); 
     String s2 = c.getString(1); 
     String s3 = c.getString(2); 
     String s4 = c.getString(3); 
     String s5 = c.getString(4); 
     String s6 = c.getString(5); 
     String s7 = c.getString(6); 
     String s8 = c.getString(7); 
     String s9 = c.getString(8); 
     String s10 = c.getString(9); 
     String s11 = c.getString(10); 
     String s12 = c.getString(11); 
     String s13 = c.getString(12); 
     String s14 = c.getString(13); 
     String s15 = c.getString(14); 
     String array[] ={s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15}; 
     Intent i = new Intent(this,SelectMember.class); 
     i.putExtra("k1",array); 
     startActivity(i); 
    } 

logcat的

E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.example.user.database, PID: 9112 
java.lang.IllegalStateException: Could not execute method for android:onClick 
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 
at android.view.View.performClick(View.java:5198) 
at android.view.View$PerformClick.run(View.java:21147) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.reflect.InvocationTargetException 
at java.lang.reflect.Method.invoke(Native Method) 
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
at android.view.View.performClick(View.java:5198)  
at android.view.View$PerformClick.run(View.java:21147)  
at android.os.Handler.handleCallback(Handler.java:739)  
at android.os.Handler.dispatchMessage(Handler.java:95)  
at android.os.Looper.loop(Looper.java:148)  
at android.app.ActivityThread.main(ActivityThread.java:5417)  
at java.lang.reflect.Method.invoke(Native Method)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
Caused by: android.database.sqlite.SQLiteException: no such column: durga (code 1): , while compiling: select * from MASTER_ACCOUNTS Where PHONENO =8121680624 and NAME = durga and LASTNAME =veerepalli      at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887) 
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498) 
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) 
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37) 
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) 
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316) 
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255) 
at com.example.user.database.Editoption.search(Editoption.java:36) 
at java.lang.reflect.Method.invoke(Native Method)  
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)  
at android.view.View.performClick(View.java:5198)  
at android.view.View$PerformClick.run(View.java:21147)  
at android.os.Handler.handleCallback(Handler.java:739)  
at android.os.Handler.dispatchMessage(Handler.java:95)  
at android.os.Looper.loop(Looper.java:148)  
at android.app.ActivityThread.main(ActivityThread.java:5417)  
at java.lang.reflect.Method.invoke(Native Method)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
Application terminated. 
+0

通過使用SQLite瀏覽器@約翰喬 –

+0

您必須指定COLUMN名稱 – Devika

+0

@Devika你應該嘗試的字符串名稱= c.getString(c.getColumnIndex(「NAME」)),而不是由它的位置 –

回答

0

字符串常量要放在單引號('

Where PHONENO ='" +num+ "' and NAME = '"+name1+"' and LASTNAME ='" +lastname1 +"'"; 
+0

當值包含一個報價時,這將炸燬。 –

+0

@CL我知道。如果你認爲它應該在回答中,你可以編輯它。 –

-1

產生的原因:android.database.sqlite.SQLiteException:沒有這樣的列: durga(代碼1):,編譯時:select * from MASTER_ACCOUNTS其中 PHONENO = 8121680624和NAME =杜爾加和姓氏= veerepalli

整頓您的查詢第一。

通知你NO such table

"SELECT* FROM "+ TABLE_NAME +" WHERE PHONENO ='" +num+ "' AND NAME = '"+ name1 +"' AND LASTNAME ='" + lastname1 +"'"; 

然後卸載舊的應用程序清潔重建潤

+0

當價值包含報價時,這將爆炸。 –

+0

@CL。先生。如果您糾正查詢,會很高興。 –

+1

[Escape](https://developer.android.com/reference/android/database/DatabaseUtils.html#sqlEscapeString(java.lang.String))字符串,或更好地使用參數。 –

相關問題