关于SQLiteDatabase

来源:互联网 发布:mac不能用千牛 编辑:程序博客网 时间:2024/06/11 22:07

用户收藏网站的一个小程序:

 用户输入数据类:

package com.xxg.favorites;import android.app.Activity;import android.content.ContentValues;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class FavoritesActivity extends Activity {//实例化EditTextprivate EditText et1,et2,et3;private Button b1;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.add);        this.setTitle("添加收藏信息");        et1=(EditText)findViewById(R.id.EditTextName);        et2=(EditText)findViewById(R.id.EditTextUrl);        et3=(EditText)findViewById(R.id.EditTextDesc);        b1=(Button)findViewById(R.id.ButtonAdd);                b1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString name=et1.getText().toString();String url=et2.getText().toString();String desc=et3.getText().toString();ContentValues values=new ContentValues();values.put("name", name);values.put("url",url);values.put("desc",desc);DBHelper helper=new DBHelper(getApplicationContext());helper.insert(values);Intent intent=new Intent(FavoritesActivity.this,QueryActivity.class);startActivity(intent);}                });    }    }

数据显示类:

package com.xxg.favorites;import android.app.AlertDialog;import android.app.ListActivity;import android.content.DialogInterface;import android.database.Cursor;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import android.widget.SimpleCursorAdapter;public class QueryActivity extends ListActivity{@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.setTitle("浏览收藏信息");//final DBHelper helpter=new DBHelper(this);final DBHelper helpter=new DBHelper(getApplicationContext());//获得游标Cursor c=helpter.query();String[] from={"_id","name","url","desc"};int[] to={R.id.text0,R.id.text1,R.id.text2,R.id.text3};SimpleCursorAdapter adapter=new SimpleCursorAdapter(this,R.layout.row,c,from,to);ListView listview=getListView();listview.setAdapter(adapter);final AlertDialog.Builder builder=new AlertDialog.Builder(this);listview.setOnItemClickListener(new OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubfinal long temp=arg3;builder.setMessage("真的要删除记录嘛?").setPositiveButton("是", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {// TODO Auto-generated method stubhelpter.del((int)temp); Cursor c=helpter.query();String[] from={"_id","name","url","desc"};int[] to={R.id.text0,R.id.text1,R.id.text2,R.id.text3};SimpleCursorAdapter adapter=new SimpleCursorAdapter(getApplicationContext(),R.layout.row,c,from,to);ListView listview=getListView();listview.setAdapter(adapter);}}).setNegativeButton("否",new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});AlertDialog ad=builder.create();ad.show();}});helpter.close();}}

数据库帮助类:

package com.xxg.favorites;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DBHelper extends SQLiteOpenHelper {//数据库名称private static final String DB_NAME="coll01.db";//表名private static final String TBL_NAME="CollTbl01";//创建SQL语句private static final String CREATE_TBL="create table CollTbl01(_id integer primary key autoincrement,name text,url text,desc text)";//SQLiteDatabase实例private SQLiteDatabase db;//构造方法public DBHelper(Context c) {super(c, DB_NAME, null,2);// TODO Auto-generated constructor stub}//创建表@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubthis.db=db;db.execSQL(CREATE_TBL);}//插入方法public void insert(ContentValues values){//获得SQLiteDataBase实例    SQLiteDatabase db=getWritableDatabase();    //插入    db.insert(TBL_NAME, null, values);    db.close();}//查询方法public Cursor query(){//获取SQLiteDatabase实例SQLiteDatabase db=getWritableDatabase();//查询获得CursorCursor c=db.query(TBL_NAME, null, null, null, null, null, null);return c;}//删除方法public void del(int id){if(db==null)//获取SQLiteDatabasedb=getWritableDatabase();db.delete(TBL_NAME,"_id=?",new String[]{String.valueOf(id)});}//关闭数据库public void close(){if(db!=null){db.close();}}@Overridepublic void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {// TODO Auto-generated method stub}}


问题是:刚开始在数据库帮助类中
CREATE_TBL="create table CollTbl01(_id integer primary key autoincrement,name text,desc text)";创建表的语句写错了,把url text写漏了,运行程序始终出现问题,找不到url无法启动数据显示类,后来改为:
CREATE_TBL="create table CollTbl01(_id integer primary key autoincrement,name text,url text,desc text)";依旧报同样的错误!最后修改表名在运行问题依旧知道修改了数据库的名字在运行成功!求解.................??


原创粉丝点击