问题描述
如果onCreate 中的db.execSQL 建立的语句写成db.execSQL("create table user(id int,name varchar(20))");就没有问题。当时如果改变user为其他就会报错 认真检查过insert方法是对poolo表写入。但是进行查询和修改时会报错。public void onCreate(SQLiteDatabase db) {db.execSQL("create table poolo(id int,name varchar(20))");System.out.println("MySQLiteOpenHelper======>onCreate");}=================================================package cfuture.poolo;import java.util.Random;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class SQLiteActivity extends Activity {private Button createSQLite=null;private Button updateSQLite=null;private Button insert=null;private Button update=null;private Button select=null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); createSQLite=findView(R.id.creatButton); updateSQLite=findView(R.id.updateSQLite); insert=findView(R.id.insert); update=findView(R.id.update); select=findView(R.id.select); createSQLite.setOnClickListener(new createSQLiteListener()); updateSQLite.setOnClickListener(new updateSQLiteListener()); insert.setOnClickListener(new insert()); update.setOnClickListener(new update()); select.setOnClickListener(new select()); } public Button findView(int Rtemp) { Button temp=null; temp=(Button)this.findViewById(Rtemp); return temp; } class createSQLiteListener implements OnClickListener {@Overridepublic void onClick(View v) {MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test",null,1);SQLiteDatabase db=my.getReadableDatabase();} } class updateSQLiteListener implements OnClickListener {@Overridepublic void onClick(View v) {MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test",2);SQLiteDatabase db=my.getReadableDatabase();} } class insert implements OnClickListener { int i=1;@Overridepublic void onClick(View v) {MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test");SQLiteDatabase db=my.getWritableDatabase();ContentValues c= new ContentValues();c.put("id", i);i++;c.put("name", "poolo");Random r= new Random();c.put("age", r.nextInt(20));db.insert("poolo", null, c);System.out.println("SQLiteActivity======>insert success");} } class update implements OnClickListener {@Overridepublic void onClick(View v) {MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test");SQLiteDatabase db=my.getWritableDatabase();ContentValues c= new ContentValues();c.put("name", "awen");db.update("poolo", c, "id=?", new String[]{"1"});System.out.println("SQLiteActivity======>update success");} } class select implements OnClickListener {@Overridepublic void onClick(View v) {MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test");SQLiteDatabase db=my.getReadableDatabase();Cursor c=db.query("poolo", new String[]{"id","name","age"}, "id=?",new String[]{"1"}, null, null, null);System.out.println("SQLiteActivity======>update success");while(c.moveToNext()){String name =c.getString(c.getColumnIndex("name"));System.out.println("sqlquery=="+name );System.out.println("name id=="+c.getColumnIndex("name"));}} }} 问题补充:package cfuture.poolo;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class MySqliteOpenHelper extends SQLiteOpenHelper {public static final int version=1;public MySqliteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){super(context,name,factory,version);}public MySqliteOpenHelper(Context context, String name, int version){this(context,name,null,version);}public MySqliteOpenHelper(Context context, String name){this(context,name,version);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table poolo(id int,name varchar(20),age int)");System.out.println("MySQLiteOpenHelper======>onCreate");}@Overridepublic void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {System.out.println("MySQLiteOpenHelper======>onUpgrade");System.out.println("onUpgrade====="+ arg1 + "|"+ arg2 + "=======");} public void onOpen(SQLiteDatabase db) { super.onOpen(db); } }
解决方案
一般出错,我会先看logcat提示什么··再找办法解决· 解决了就好··
解决方案二:
我的意思是,你先贴出,查询,修改的异常信息啊 这样才能下手去解决啊· ······
解决方案三:
查询和修改时会报错那你查询修改的时候 logcat的错误信息是什么啊?
解决方案四:
"当时如果改变user为其他就会报错"贴一下你的MySqliteOpenHelper