2013-07-16 7 views
5

Der folgende Fehler tritt auf, wenn ich auf Insert Button Fehler: android.database.sqlite.SQLiteException; in der Nähe von "student_name"; Syntaxfehler (Code 1); beim Kompilieren: CR

* Fehler

klicken: android.database.sqlite.SQLiteException; in der Nähe von "student_name"; Syntaxfehler (Code 1); beim Kompilieren: CREATE TABLE IF NOT studentTable (_id TEXT PRIMARY KEY student_name TEXT NOT NULL student_rollno TEXT NOT NULL) besteht; *

Coding

DbActivity.java

package com.example.a; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteException; 
import android.database.sqlite.SQLiteOpenHelper; 


public class DbActivity { 
public static final String KEY_ID = "_id"; 
public static final String KEY_NAME = "student_name"; 
public static final String KEY_ROLLNO = "student_rollno"; 


private static final String DATABASE_NAME= "Studentdb"; 
private static final int DATABASE_VERSION = 1; 
private static final String DATABASE_TABLE = "studentTable"; 

private DbHelper ourHelper; 
private final Context ourContext; 
private SQLiteDatabase ourDatabase; 

class DbHelper extends SQLiteOpenHelper { 

    public DbHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 

     // TODO Auto-generated method stub 
     db.execSQL("CREATE TABLE IF NOT EXISTS " + DATABASE_TABLE + " (" + 
     KEY_ID + " TEXT PRIMARY KEY " + 
     KEY_NAME + " TEXT NOT NULL , " + 
     KEY_ROLLNO + " TEXT NOT NULL);" 
     ); 
      } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 
     db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE); 
     onCreate(db); 
    } 

} 


public DbActivity(Context c) { 
ourContext = c; 
} 

public DbActivity open() throws SQLException{ 
    ourHelper = new DbHelper(ourContext); 
    ourDatabase = ourHelper.getWritableDatabase(); 
    return this; 
} 

public void close() { 
    ourHelper.close(); 
} 

public void createEntry(String name, String id, String rollno) { 
    // TODO Auto-generated method stub 
    ContentValues cv = new ContentValues(); 
    cv.put(KEY_ID, id); 
    cv.put(KEY_NAME, name); 
    cv.put(KEY_ROLLNO, rollno); 
    ourDatabase.insert(DATABASE_TABLE, null, cv); 
} 

MainActivity.java

+1

Sie haben ein 'Komma' auf' TEXT PRIMARY KEY' verpasst. Sollte sein: 'TEXT PRIMARY KEY,' – Aprian

Antwort

7

Ihre CREATE Anweisung fehlt ein Komma nach TEXT PRIMARY KEY

db.execSQL("CREATE TABLE IF NOT EXISTS " + DATABASE_TABLE + " (" + 
KEY_ID + " TEXT PRIMARY KEY , " + 
KEY_NAME + " TEXT NOT NULL , " + 
KEY_ROLLNO + " TEXT NOT NULL);" 
); 
1

Sie vermissen ein Komma , nach dem primary key

Fügen Sie einfach ein Komma nach PRIMARY KEY

db.execSQL("CREATE TABLE IF NOT EXISTS " + DATABASE_TABLE + " (" + 
     KEY_ID + " TEXT PRIMARY KEY, " + 
     KEY_NAME + " TEXT NOT NULL , " + 
     KEY_ROLLNO + " TEXT NOT NULL);" 
     ); 
+0

Ihr Name sollte vibgyor sein ...: p –

0

Try "IF NOT EXIST" in der create table-Befehl, SQLite in Android-Version zu löschen 4.0.4 geben Sie diesen Fehler, und nicht in 4.4.2

Glück.

Verwandte Themen