2017-07-31 46 views
0

我是新的android工作室。我試圖創建SQLite數據庫,但當我嘗試插入數據android studio無法解決它。我也試過MainActivity.this和getApplicationContext而不是db=new DatabaseHelper(this);這一行。和設備顯示器上,它不是建立一個數據庫文件我不能調用我的構造函數方法SQLite

MainActivity.java

package com.example.lenovo.sqlite_2_deneme; 

import android.content.Context; 
import android.media.midi.MidiDevice; 
import android.provider.ContactsContract; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 

    DatabaseHelper db; 

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

     db=new DatabaseHelper(this); 

     EditText et_name,et_surname,et_number; 
     Button btn_data; 

     et_name= (EditText) findViewById(R.id.et_isim); 
     et_surname= (EditText) findViewById(R.id.et_soyisim); 
     et_number= (EditText) findViewById(R.id.et_numara); 
     btn_data= (Button) findViewById(R.id.btn_veri); 

     btn_data.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       db.insertData(); 

      } 
     }); 

    } 
} 

和我DatabaseHelper類

package com.example.lenovo.sqlite_2_deneme; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.provider.ContactsContract; 
import android.widget.TableLayout; 


public class DatabaseHelper extends SQLiteOpenHelper { 

    public static final String DATABASE_NAME= "student_info.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="NUMBER"; 

    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, NAME TEXT, SURNAME TEXT, NUMBER INTEGER)"); 
    } 

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

     db.execSQL("DROP TABLE IF EXISTS"+ TABLE_NAME); 
     this.onCreate(db); 
    } 

    public Boolean DataInsert(String name, String surname, String number) 
    { 
     SQLiteDatabase db=this.getWritableDatabase(); 
     ContentValues contentValues=new ContentValues(); 
     contentValues.put(COL_2,name); 
     contentValues.put(COL_3,surname); 
     contentValues.put(COL_4,number); 

     long sonuc= db.insert(TABLE_NAME,null,contentValues); 

     if(sonuc==-1) 
      return false; 
     else 
      return true; 

    } 

} 
+0

有沒有方法名'分貝'insertData();'在你的'DatabaseHelper'裏面 – akhilesh0707

回答

0

您的數據庫將在實例被創建,當你調用

SQLiteDatabase db=this.getWritableDatabase(); 

目前我沒有看到你在你的代碼中的任何地方調用了它。你已經寫了一個DataInsert方法,但是它沒有被你迄今共享的代碼調用。

+0

我注意到了,但是因爲啓動中斷我不能嘗試,如果我改正它創建數據庫 –

+0

是的。你調用你的DataInsert而不是insertDat方法,它應該工作 –

+0

謝謝我會在啓動後嘗試它,但沒有DataInsert方法,它不會創建數據庫 –

0

沒有方法insertData()。您應該使用 DataInsert()方法。

db=new DatabaseHelper(MainActivity.this); 

    EditText et_name,et_surname,et_number; 
    Button btn_data; 

    et_name= (EditText) findViewById(R.id.et_isim); 
    et_surname= (EditText) findViewById(R.id.et_soyisim); 
    et_number= (EditText) findViewById(R.id.et_numara); 
    btn_data= (Button) findViewById(R.id.btn_veri); 

    btn_data.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      db.DataInsert(et_name.getText().toString(),et_surname.getText().toString(),et_number.getText().toString()); 

     } 
    }); 

FYI

void onCreate (SQLiteDatabase db) 

首次創建數據庫時調用。

0

傻冒SQL查詢錯誤給表空間(插入數據),並且還在onupgrade和沒有方法insertData()

db.execSQL("CREATE TABLE "+ TABLE_NAME+"(ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, SURNAME TEXT, NUMBER INTEGER)"); 
相關問題