2017-07-31 9 views
0

私はアンドロイドスタジオで初めてです。私はSQLiteデータベースを作成しようとしましたが、データを挿入しようとするとアンドロイドスタジオはそれを解決できません。私もこの行にdb=new DatabaseHelper(this);の代わりにMainActivity.thisとgetApplicationContextを試しました。あなたが私のコンストラクタメソッドを呼び出すことはできません。SQLite

を呼び出すときと
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

にはメソッド名 'dbがありません.insertData(); 'あなたの' DatabaseHelper'の中 – akhilesh0707

答えて

0

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クラス

MainActivity.java

、それはデータベース・ファイルを作成していない機器のモニターにあなたのデータベースがインスタンスで作成されます。
SQLiteDatabase db=this.getWritableDatabase(); 

現時点では、コード内のどこにでもこの名前が表示されています。 DataInsertメソッドを作成しましたが、これまでに共有したコードでは呼び出されません。

+0

私はそれを気付きましたが、私はそれがデータベースを作成するのであれば、起動ブレークのために試すことができませんでした –

+0

はい、そうです。代わりにinsertDat方法のごDataInsertを呼び出し、それは私が打ち上げ後にそれをみますが、あなたがすることをしたい場合は、DBに挿入する前にgetWritableDatabaseメソッドを呼び出すことでDBを作成することができ –

+0

おかげで動作するはずです –

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

your'e SQLクエリは、間違ったテーブル内のスペース(挿入データ)を得ている、ともONUPGRADEにしてを全く方法がinsertDataありません()

db.execSQL("CREATE TABLE "+ TABLE_NAME+"(ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, SURNAME TEXT, NUMBER INTEGER)"); 
関連する問題