【问题标题】:Android Studio project安卓工作室项目
【发布时间】:2017-11-30 15:02:03
【问题描述】:

您好,我正在做一个 andorid 工作室项目,当我将数据添加到应用程序然后尝试查看数据时出现错误,提示“错误,未找到任何内容”。我自己做了一个 SQLite 数据库,希望有人能帮我找出错误。

package ie.wit.andrew.drivingschool;

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

public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Driver.db";
public static final String TABLE_NAME = "driver_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "NAME";
public static final String COL_3 = "DATE OF BIRTH";
public static final String COL_4 = "LOGBOOK NUMBER";   //Making up my 
                                                       //database of the 
                                                       //information I will 
                                                       //be entering into my 
                                                       //application
public static final String COL_5 = "LESSON NUMBER";

public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, 1); //when this constructor is 
                                            //called your Database has been 
                                            //created

}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY 
AUTOINCREMENT,NAME TEXT,DATE OF BIRTH TEXT, LOGBOOK NUMBER TEXT, LESSON 
NUMBER 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 dateofbirth, String 
logbooknumber, String lessonnumber) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL_2,name);
    contentValues.put(COL_3,dateofbirth);
    contentValues.put(COL_4,logbooknumber);
    contentValues.put(COL_5,lessonnumber);
    long result = db.insert(TABLE_NAME,null,contentValues); //This method 
                                                            //returns -1
    if (result == -1)
        return false;
    else
        return true;
}

public Cursor getAllData() {
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor res = db.rawQuery("select * from "+ TABLE_NAME,null);
    return res;
}
}



package ie.wit.andrew.drivingschool;

import android.database.Cursor;
import android.support.v7.app.AlertDialog;
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 DrivingSchool extends AppCompatActivity {

DatabaseHelper myDb;
EditText editName,editDateofBirth,editLogbookNumber,editLessonNumber;
Button btnAddData;
Button btnviewAll;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_driving_school);
    myDb = new DatabaseHelper(this);

    editName = (EditText)findViewById(R.id.editText_name);
    editDateofBirth = (EditText)findViewById(R.id.editText_dateofbirth);
    editLogbookNumber = (EditText)findViewById(R.id.editText_logbooknumber);
    editLessonNumber = (EditText)findViewById(R.id.editText_lessonNumber);
    btnAddData = (Button)findViewById(R.id.button_add);
    btnviewAll = (Button)findViewById(R.id.button_viewAll);
    AddData();
    viewAll();
 }

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

  public  void viewAll() {
    btnviewAll.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v){
                    Cursor res = myDb.getAllData();
                     if(res.getCount() == 0) {
                          //Show Message
                         showMessage("Error", "Nothing found");
                         return;
                     }

                     StringBuffer buffer = new StringBuffer();
                    while(res.moveToNext()) {
                        buffer.append("ID : "+ res.getString(0)+"\n");
                        buffer.append("NAME : "+ res.getString(1)+"\n");
                        buffer.append("DATE OF BIRTH : "+ 
                        res.getString(2)+"\n");
                        buffer.append("LOGBOOK NUMBER : "+ 
                        res.getString(3)+"\n\n");;

                    }

                    //showdata
                    showMessage("Data",buffer.toString());
                }
            }
      );

  }

  public void showMessage(String title,String Message){
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setCancelable(true);
        builder.setTitle(title);
        builder.setMessage(Message);
        builder.show();
  }
}

【问题讨论】:

  • 在调用 sqlite 的地方添加代码
  • onCreate(SQLiteDatabase db) 中的错误(删除 DATE OF BIRTH 和其他列之间的空格)
  • 你能给我们确切的错误信息和/或堆栈跟踪吗?
  • 我点击添加数据,然后点击查看数据,我得到的错误信息是“ERROR NOTHING FOUND”

标签: java android eclipse sqlite import


【解决方案1】:

尝试从列名中删除空格

【讨论】:

  • 我试过删除空格,不幸的是我得到了同样的错误
【解决方案2】:

您提供了错误的列名,这就是您的数据库未创建的原因,请查看此链接以获取在 Android 应用程序中创建和使用数据库的完整指南

http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 2017-04-17
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多