在数据库表中插入值(适用于Android应用程序的SQLite)

时间:2011-10-10 20:30:02

标签: android sqlite

我在插入字符串值时遇到问题(user_name,password)  进入一个表,名为login。 以下是代码: 我已添加“//这就是问题发生的地方”注释以突出显示问题...包含所有数据库相关方法的DBAdapter类也在此代码之后给出..

package images.tests.proj;

import java.io.IOException;
import images.tests.proj.DBAdapter;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.database.Cursor;

public class username extends Imagetest1Activity {
    /** Called when the activity is first created. */
    private DBAdapter db1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.username);
        Button lbtn = (Button) findViewById(R.id.loginb);
        Button rbtn = (Button) findViewById(R.id.registerb);
        final EditText utext = (EditText) findViewById(R.id.utext);
        final EditText ptext = (EditText) findViewById(R.id.ptext);
        db1 = new DBAdapter(this);
        rbtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                String ut = utext.getText().toString();
                String pt = ptext.getText().toString();
                try {
                    // THIS IS WHERE THE PROBLEM OCCURS
                    db1.insertContact(ut, pt);

                } catch (NullPointerException e) {
                    Toast.makeText(username.this, "Error", Toast.LENGTH_SHORT).show();
                }
            }
        });

    }
}

DBAdapter类包含insertContact方法,如下所示:

//---insert a contact into the database---
public long insertContact(String user_name, String password)
{
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_USERNAME, user_name);
    initialValues.put(KEY_PASSWORD, password);
    return db.insert(DATABASE_TABLE, null, initialValues);
}
你可以指出错误吗? 任何帮助都会很明显。谢谢!

2 个答案:

答案 0 :(得分:0)

您需要打开可在DBAdapter类中编写的数据库:

尝试:

 public long insertContact(String user_name, String password)
{
db= this.getWritableDatabase();
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_USERNAME, user_name);
initialValues.put(KEY_PASSWORD, password);
return db.insert(DATABASE_TABLE, null, initialValues);
}

答案 1 :(得分:0)

使用它。

public long insertContact(String name, int moves,String time)   {

    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_NAME, name);
    initialValues.put(KEY_MOVES, moves);
    initialValues.put(KEY_TIME, time);
    return db.insert(DATABASE_TABLE, null, initialValues);
}