2016-06-13 12 views
0

私はsqlliteを使用しているCRUD操作を使用しています。しかし、私がプログラムを実行しようとしているときは、次のエラーが表示されます。ここでは、私のdatabasehelper.javaファイル& mainactivity.javaのファイルコードを以下に示します。残念ながらSQlLiteAppが停止しました

ここに私のDatabaseHelper.javaファイルコードがあります。ここで

import android.content.ContentValues; 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DatabaseHelper extends SQLiteOpenHelper { 
    public static final String DATABASE_NAME = "Student.db"; 
    public static final String TABLE_NAME = "Student_Table"; 
    public static final String COL_1 = "ID"; 
    public static final String COL_2 = "NAME"; 
    public static final String COL_3 = "SURNAME"; 
    public static final String COL_4 = "SUBJECT"; 

    public DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, 1); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL("CREATE TABLE" + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, NAME VARCHAR (20) NOT NULL, SURNAME VARCHAR (20) NOT NULL, SUBJECT VARCHAR (20) NOT NULL)"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME); 
     onCreate(db); 
    } 

    public boolean insertData(String name,String surname,String subject){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues contentValues = new ContentValues(); 
     contentValues.put(COL_2,name); 
     contentValues.put(COL_3,surname); 
     contentValues.put(COL_4,subject); 
     long result = db.insert(TABLE_NAME,null,contentValues); 
     if (result == -1) 
      return false; 
     else 
      return true; 
    } 
} 

私はそれが次のメッセージ

は "残念ながらSQlLiteAppが停止している.." を示すデータを保存するつもりだときに私のMainActivity.javaファイルが

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 
    DatabaseHelper myDb; 
    EditText editName,editSurname,editSubject; 
    Button btnAddData; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     myDb = new DatabaseHelper(this); 

     editName = (EditText)findViewById(R.id.editText_Name); 
     editSurname = (EditText)findViewById(R.id.editText_SurName); 
     editSubject = (EditText)findViewById(R.id.editText_Subject); 
     btnAddData = (Button)findViewById(R.id.button_add); 
     AddData(); 
    } 

    public void AddData(){ 
     btnAddData.setOnClickListener(
       new View.OnClickListener(){ 
        @Override 
        public void onClick(View v) { 
        boolean isInserted = myDb.insertData(editName.getText().toString(),editSurname.getText().toString(),editSubject.getText().toString()); 
         if (isInserted == true) 
          Toast.makeText(MainActivity.this,"Data Inserted",Toast.LENGTH_LONG).show(); 
         else 
          Toast.makeText(MainActivity.this,"Data Not Inserted",Toast.LENGTH_LONG).show(); 
        } 
       } 
     ); 
    } 

} 

ある

+1

私たちに教えてくださいlogcat –

+0

あなたのログはどこですか? – Basi

答えて

0

あなたのことを忘れているようですCREATE TABLEEXISTSの後にスペースを追加しますので

"CREATE TABLE" + TABLE_NAME + "(ID 

を変更

"CREATE TABLE " + TABLE_NAME + " (ID 

"DROP TABLE IF EXISTS" + TABLE_NAME 

"DROP TABLE IF EXISTS " + TABLE_NAME 

への注意:再試行する前にアプリをアンインストールしてください。

+0

ありがとうございました。働いています。 – kishor

+0

@kishor楽しんで、楽しんでください。 –

0

ログから: android.database.sqlite.S QLiteException:「TABLEStudent_Table」近い:構文エラー(コード1) 次を使用します。表の後に短いアドスペース以降のアップグレードで

db.execSQL("CREATE TABLE " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, NAME VARCHAR (20) NOT NULL, SURNAME VARCHAR (20) NOT NULL, SUBJECT VARCHAR (20) NOT NULL);"); 

が存在する:

db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME +";"); 
+0

動作していません。同じ結果です.... – kishor

+0

ありがとうございました。そのok – kishor

関連する問題