2017-02-14 6 views
0

Ich arbeite an Android SQLite. Ich erstelle eine neue Tabelle und versuche, Werte einzufügen. Aber es gibt keine Spalte LastName beim Versuch, die Werte einzufügen.android sqlite kein solcher Spaltenfehler

Bitte helfen Sie mir. Bitte überprüfen Sie den folgenden Code.

String query3 = "create table if not exists " + "SIGNUPINFO" + " ("         + "FirstName TEXT," + "LastName TEXT," + "EmailID TEXT," + "Password TEXT," 
+ "Phone TEXT," +"Security TEXT);"; 

db.execSQL(query3); 

String query5 = "INSERT INTO SIGNUPINFO" + " (FirstName,LastName,EmailID,Password,Phone,Security) " + "VALUES ('" 
+ firstName + "','" +lastName+ "','" + emailID + "','" +password+ "','" + phone+ "','" + "security" +"');"; 

db.execSQL(query5); 
+0

Bitte. Show log error –

+0

Haben Sie Ihre Tabelle aktualisiert, ohne Ihre Datenbankversion zu aktualisieren? Versuchen Sie, Ihre App-Daten zu löschen und erneut auszuführen, vielleicht ist Ihre Tabelle nicht aktualisiert –

+0

Wenn Sie Root-Zugriff haben, dann versuchen Sie, die .db-Datei herausziehen und sehen, ob die Datenbank erfolgreich erstellt wurde. Verwenden Sie ein beliebiges DMBS-Tool und versuchen Sie, Ihre Abfrage auszuführen. Habe gerade den Code ausgeführt, den du eingefügt hast, und sieht gut aus. – Dibzmania

Antwort

1

Bitte überprüfen Sie refernce für dasselbe Problem zu beantworten. Kann es Ihnen helfen.

Nun, wenn Sie sind confindent über Syntax für Tabelle erstellen, als es passieren kann, wenn Sie neue Spalte in der gleichen Tabelle hinzufügen, dass für ...

1) Unistall von Ihrem Gerät und Lauf es wieder.

ODER

2) Einstellung -> App. -> Cleardata

ODER

3) ändern DATABASE_NAME in Ihrer "DatabaseHandler" Klasse (I gleiches Problem konfrontiert Aber Ich habe gehakt, indem ich DATABASE_NAME geändert habe.)

ODER

4) ändern Database_Version in Ihrem "DatabaseHandler" Klasse (Wenn Sie neue Spalte hinzugefügt, als es autimatically Upgrade wird)

public DatabaseHandler(Context context) { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     } 
+1

Danke! Dies funktionierte – user3571631

+0

Also bitte markieren Sie Zeichen @ user3571631. – Kush

-2

Put dieser Code in Anwendungsklasse und erhalten Datenbank in externalstorage.

Dann können Sie die Spalte überprüfen, die in der Datenbanktabelle erstellt wurde oder nicht.

public static void copyDataBase(Context mActivity) throws IOException { 
     Log.d("tag", "Copy Database called"); 
     InputStream myInput = new FileInputStream(new File("/data/data/" 
       + mActivity.getPackageName() + "/databases/" 
       + "yourdb.sqlite")); 
     File files = new File(Environment.getExternalStorageDirectory() 
       + "/files/"); 
     files.mkdirs(); 
     String outFileName = Environment.getExternalStorageDirectory() 
       + "/yourdb.sqlite"; 
     OutputStream myOutput = new FileOutputStream(outFileName); 
     byte[] buffer = new byte[1024]; 
     int bufferLength; 
     while ((bufferLength = myInput.read(buffer)) > 0) { 
      myOutput.write(buffer, 0, bufferLength); 
     } 
     myOutput.flush(); 
     myOutput.close(); 
     myInput.close(); 
     Log.d("tag", "Copy Database Done"); 
    } 

Ich hoffe es ist nützlich für Sie.

Verwandte Themen