2014-08-21 6 views
-1
public class MainActivity extends ActionBarActivity { 

    public Button save, view; 
    public EditText name, phnnumber, mail, dejignation; 
    DataBaseHelper dBaseHelper; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     initializedAll(); 

     dBaseHelper = new DataBaseHelper(this); 

     save.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       save(v); 
      } 
     }); 
    } 

    public void initializedAll() { 

     save = (Button) findViewById(R.id.savebutton); 
     view = (Button) findViewById(R.id.viewbutton); 

     name = (EditText) findViewById(R.id.nameEditText); 
     mail = (EditText) findViewById(R.id.emailTextView); 
     phnnumber = (EditText) findViewById(R.id.numberTextView); 
     dejignation = (EditText) findViewById(R.id.dejignation); 

    } 

    public void save(View v) { 

     String nam = name.getText().toString(); 
     String numb = phnnumber.getText().toString(); 
     String mai = mail.getText().toString(); 
     String dez = dejignation.getText().toString(); 

     Employe employe = new Employe(nam, mai, numb, dez); 
     Toast.makeText(getApplicationContext(), employe.toString(), 
       Toast.LENGTH_SHORT).show(); 

     long inserted = dBaseHelper.insertEmployr(employe); 
     if (inserted >= 0) { 
      Toast.makeText(getApplicationContext(), "Data inserted", 
        Toast.LENGTH_SHORT).show(); 
     } else { 
      Toast.makeText(getApplicationContext(), "Data insertion failed", 
        Toast.LENGTH_SHORT).show(); 
     } 
    } 

} 



public class DataBaseHelper extends SQLiteOpenHelper { 

    public static final String DBNAME = "task_magment"; 
    public static final int DB = 1; 

    public static final String EMPLOYETABLE = "e"; 
    public static final String IDFIELD = "id"; 
    public static final String NAMEFIELD = "name"; 
    public static final String EMAILFIELD = "email"; 
    public static final String PHNFIELD = "phone"; 
    public static final String DEJIGNATIONFIELD = "dejignation"; 

    public static final String EMPLOYEETABLESQL = "CREATE TABLE" 
      + EMPLOYETABLE + "(" + IDFIELD + "INTEGER PRIMARY_KEY," 
      + NAMEFIELD + "TEXT," + EMAILFIELD + "TEXT," + PHNFIELD 
      + "TEXT," + DEJIGNATIONFIELD + "TEXT)"; 

    public DataBaseHelper(Context context) { 
     super(context, DBNAME, null, DB); 

    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // create tebil 
     db.execSQL(EMPLOYEETABLESQL); 
     //Log.e("TABLE CREATE", EMPLOYEE_TABLE_SQL); 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

    } 

    public long insertEmployr(Employe employe) { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues values = new ContentValues(); 
     values.put(NAMEFIELD, employe.getName()); 
     values.put(PHNFIELD, employe.getPhn()); 
     values.put(EMAILFIELD, employe.getEmail()); 
     values.put(DEJIGNATIONFIELD, employe.getDesignation()); 
     long inserted = db.insert(EMPLOYETABLE, null, values); 
     db.close(); 
     return inserted; 
    } 

    // ///query 

    public ArrayList<Employe> getAllEmploye() { 
     return null; 
    } 
} 

Когда я запускаю это приложение и нажимаю кнопку сохранения, тогда приложения разбились.Ошибка SQL LogCat

В LogCat это показывает, что

(1) рядом с "TABLEe": ошибка синтаксиса.

Но я не нашёл никаких ошибок.

Как я могу решить эту проблему?

+0

Между 'CREATE TABLE' и именем таблицы нет пробела! –

ответ

1

Ошибка здесь Вы забыли пространство между полями и полем типа данных также пространство после CREATE TABLE

public static final String EMPLOYEETABLESQL = "CREATE TABLE" 
    + EMPLOYETABLE + "(" + IDFIELD + "INTEGER PRIMARY_KEY," 
    + NAMEFIELD + "TEXT," + EMAILFIELD + "TEXT," + PHNFIELD 
    + "TEXT," + DEJIGNATIONFIELD + "TEXT)"; 

После Создать таблицу вы забыли пространство на начальном уровне заботиться о пространствах

public static final String EMPLOYEETABLESQL = "CREATE TABLE " 
    + EMPLOYETABLE + " (" + IDFIELD + " INTEGER PRIMARY KEY, " 
    + NAMEFIELD + " TEXT, " + EMAILFIELD + " TEXT, " + PHNFIELD 
    + " TEXT, " + DEJIGNATIONFIELD + " TEXT)"; 

Я решенных ваш первоначальный проблема пространств, если есть ошибка в отношении пространства.

UPDATE

Здесь также проблемы

  1. IDFIELD = "id"; значение этого поля должно быть "_id"
  2. При создании таблицы вы не установили ID Фейлд в AUTOINCREMENT. Так либо вам нужно установить поле ID как AUTOINCREMENT, либо вам нужно вставить значение этого, потому что это первичный ключ.

NEW QUERY Виль, как это

public static final String EMPLOYEETABLESQL = "CREATE TABLE " 
    + EMPLOYETABLE + " (" + "_id" + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
    + NAMEFIELD + " TEXT, " + EMAILFIELD + " TEXT, " + PHNFIELD 
    + " TEXT, " + DEJIGNATIONFIELD + " TEXT)"; 

Может это исправляет ваши вопросы.

+0

Это не работает ваш ответ. @ Shabbir Dhangot –

+0

Какая у вас ошибка? такая же ошибка или другая? если отличается, то обновите свой вопрос –

+0

та же ошибка. @Shabbir Dhangot –

1

Просто измените EMPLOYEETABLESQL на

EMPLOYEETABLESQL = "CREATE TABLE " 
    + EMPLOYETABLE + " (" + IDFIELD + " INTEGER PRIMARY_KEY, " 
    + NAMEFIELD + " TEXT, " + EMAILFIELD + " TEXT, " + PHNFIELD 
    + " TEXT, " + DEJIGNATIONFIELD + " TEXT)"; 

Подсказка: В следующий раз при попытке выполнения запроса из кода Java, попытайтесь распечатать запрос в консоль или LogCat сразу после вы сделали их так, что вы можете копировать запрос и выполнить его прямо из командной строки MySQL, чтобы увидеть, есть ли ошибка.

+0

Нет, ваш ответ не работает. @shyam –

+0

Какая ошибка сейчас? Вы пытались распечатать его в консоли и выполнить запрос из командной строки mySQL? Заметьте, я внес незначительные изменения в свой первоначальный ответ. – shyam

Смежные вопросы