为什么我看不到来自用户输入的插入数据?

时间:2017-03-13 19:13:21

标签: java android sql database sqlite

当用户按下“注册”按钮时,他输入的详细信息将保存到数据库中,但不会显示任何内容。

我的代码有问题吗?为什么我看不到插入数据库的数据?它不会崩溃或什么的。

将对DBAdapter

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

public class DBAdapter
{
    public static final String KEY_ROWID = "_id";
    public static final String KEY_FNAME = "fname";
    public static final String KEY_LNAME = "lname";
    public static final String KEY_MNAME = "mname";
    public static final String KEY_CONTACTNUM = "contactNum";
    public static final String KEY_LICENSE = "license";
    public static final String KEY_USER = "username";
    public static final String KEY_PASS = "password";
    private static final String TAG = "DBAdapter";

    private static final String DATABASE_NAME = "sampleForFinals";
    private static final String DATABASE_TABLE = "drivers";
    private static final int DATABASE_VERSION = 1;

    private static final String DATABASE_CREATE =
            "create table drivers (_id integer primary key autoincrement, "
                    + "fname text not null, lname text not null, "
                    + "mname text not null, contactNum text not null," +
                    "license text not null, username text not null, password text not null);";

    private final Context context;

    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;

    public DBAdapter(Context ctx)
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }

    private static class DatabaseHelper extends SQLiteOpenHelper
    {
        DatabaseHelper(Context context)
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db)
        {
            db.execSQL(DATABASE_CREATE);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion,
                              int newVersion)
        {
            Log.w(TAG, "Upgrading database from version " + oldVersion
                    + " to "
                    + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS drivers");
            onCreate(db);
        }
    }

    //---opens the database---
    public DBAdapter open() throws SQLException
    {
        db = DBHelper.getWritableDatabase();
        return this;
    }

    //---closes the database---
    public void close()
    {
        DBHelper.close();
    }

    //---insert a driver's information into the database---
    public long insertDriver(String fname, String lname, String mname, String contactNum, String license, String user, String pass)
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_FNAME, fname);
        initialValues.put(KEY_LNAME, lname);
        initialValues.put(KEY_MNAME, mname);
        initialValues.put(KEY_CONTACTNUM, contactNum);
        initialValues.put(KEY_LICENSE, license);
        initialValues.put(KEY_USER, user);
        initialValues.put(KEY_PASS, pass);
        return db.insert(DATABASE_TABLE, null, initialValues);
    }
}

注册

import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.ftlibrary.Fit;

public class Register extends Activity {

    EditText firstname,lastname, middlename, contactNum, license, username, password;
    Button register;

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

        Fit.FitSetClientKey("SZIERAINE1527");
        Fit.FitSetAppName("sampleForFinals");

        firstname = (EditText) findViewById(R.id.et_firstname);
        lastname = (EditText) findViewById(R.id.et_lastname);
        middlename = (EditText) findViewById(R.id.et_middlename);
        contactNum = (EditText) findViewById(R.id.et_contactNumber);
        license = (EditText) findViewById(R.id.et_license);
        username = (EditText) findViewById(R.id.et_username);
        password = (EditText) findViewById(R.id.et_password);
        register = (Button) findViewById(R.id.btn_register);

        register.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                    DBAdapter    db = new DBAdapter(Register.this);

                    String fname = firstname.getText().toString();
                    String lname = lastname.getText().toString();
                    String mname = middlename.getText().toString();
                    String contact = contactNum.getText().toString();
                    String plate = license.getText().toString();
                    String user = username.getText().toString();
                    String pass = password.getText().toString();

                    db.open();

                    long id = db.insertDriver(fname, lname, mname, contact, plate, user, pass);

                    db.close();
            }
        });
    }
}

为什么我看不到数据库中的任何记录? TT TT

0 个答案:

没有答案