2 wuhudamahua wuhudamahua 于 2016.05.08 23:26 提问

Android一个简单数据库应用

图片说明我做了一个简单的Android数据库应用,就是一个在edittext中输入文字,点击按钮就把输入的文字保存到数据库中,但是db=dbHelper.getWritableDatabase(); 总是报错
package com.example.shujukushiyan;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

shujuku dbHelper;
EditText et;
Button bt;
Context context;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    dbHelper = new shujuku(context,"wenzi.db",null,3);
    et=(EditText) findViewById(R.id.et);   
    bt=(Button) findViewById(R.id.bt);
    bt.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {
            db=dbHelper.getWritableDatabase();              
            ContentValues values=new ContentValues();               
            values.put("neirong",et.getText().toString());
            db.insert("text", null, values);            
            Toast.makeText(context, "sava success", 0).show();
        }           
    });
}

}

这是数据库代码
package com.example.shujukushiyan;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class shujuku extends SQLiteOpenHelper {

public shujuku(Context context, String name, CursorFactory factory,
        int version) {
    super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {

    db.execSQL("create table text("+"id integer primary key autoincrement,"+"neirong text)");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("dorp table if exists text");
    onCreate(db);
}

}

6个回答

caozhy
caozhy   Ds   Rxr 2016.05.08 23:31

多半是你数据库文件的路径有问题。

CSDNXIAOD
CSDNXIAOD   2016.05.08 23:32

一个简单的鸽巢原理的应用
创建一个简单android百度地图应用
一个FMDB数据库简单应用
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

cuizehui123
cuizehui123   2016.05.08 23:56

看logcat啊,感觉有可能是数据库建表错误吧。没返回数据库造成空指针异常。。

wuhudamahua
wuhudamahua 已发log
一年多之前 回复
l_vaule
l_vaule   2016.05.09 00:19

最好把log发一下,而且你确定这样的表能建出来?

l_vaule
l_vaule 好吧,可以。
一年多之前 回复
sl_18500
sl_18500   2016.05.09 09:35

报错是什么错呢?空指针?还是?

wuhudamahua
wuhudamahua 已发log
一年多之前 回复
sinat_33164199
sinat_33164199   2016.05.09 17:55

什么错?你可以把错误粘出来,看一下

wuhudamahua
wuhudamahua 已发log
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!