2017-07-17 50 views
0

我有这样的代码 这是我在sqlite的第一个代码,我把它从本教程http://www.youtube.com/watch?v=p8TaTgr4uKM我做什么他做的视频,但它不工作 DBclass不能添加数据的SQLite的Android

package com.catarmy.leader.ahmed.dbtest; 
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 = "MARKS"; 

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 , MARK INTEGER)"); 
} 

@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 mark) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put(COL_2, name); 
    contentValues.put(COL_3, surname); 
    contentValues.put(COL_4, mark); 
    long result = db.insert(TABLE_NAME, null, contentValues); 
    if (result == -1) 
     return false; 
    else 
     return true; 
} 
} 

主要活动类

package com.catarmy.leader.ahmed.dbtest;

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 studentDB; 
EditText name; 
EditText surname; 
EditText marks; 
Button add; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    name=(EditText)findViewById(R.id.Name); 
    surname=(EditText)findViewById(R.id.Surename); 
    marks=(EditText)findViewById(R.id.Marks) ; 
    add=(Button)findViewById(R.id.Add); 

    studentDB= new Databasehelper(this); 
    add(); 
    } 
public void add(){ 
add.setOnClickListener(
     new View.OnClickListener(){ 
      @Override 
      public void onClick(View v) { 
    //the boolean here to see if the data insert success 
    boolean isInserted= 
     studentDB.insertData(name.getText().toString(),surname.getText().toSt 
ring(),marks.getText().toString()); 
        Toast.makeText(MainActivity.this,"data insert 
="+isInserted,Toast.LENGTH_LONG).show(); 
      } 
     } 
); 
} 
} 

我的问题是,当我点击添加按钮敬酒味精说:“数据插入 =假”和表没有被创建。

+0

精神缺失的空间**后EXISTS **在'db.execSQL( “DROP TABLE IF EXISTS” + TABLE_NAME);' –

+1

创建和插入语句中的标记列名称不同。它在create语句中是'MARK',但'COL_4'对于插入的值为'MARKS' – hibob

+0

我试过并且没有结果 –

回答

0

我找到了解决办法 我刚刚从 public static final String DATABASE_NAME = "student.db" 更改的数据库名称 public static final String DATABASE_NAME = "student" 谢谢

相关问题