如果 onCreate 中的db.execSQL 建立的语句写成db.execSQL("create table [color=darkred]user/color)");就没有问题。当时如果改变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
{
@Override
public void onClick(View v) {
MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test",null,1);
SQLiteDatabase db=my.getReadableDatabase();
}
}
class updateSQLiteListener implements OnClickListener
{
@Override
public void onClick(View v) {
MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test",2);
SQLiteDatabase db=my.getReadableDatabase();
}
}
class insert implements OnClickListener
{
int i=1;
@Override
public 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
{
@Override
public 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
{
@Override
public 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"));
}
}
}
}
:lol: 一般出错,我会先看logcat提示什么··再找办法解决·
解决了就好·· :wink:
8) "当时如果改变user为其他就会报错"
贴一下你的MySqliteOpenHelper
查询和修改时会报错
那你查询修改的时候 logcat的错误信息是什么啊?
8)
我的意思是,你先贴出,查询,修改的异常信息啊 这样才能下手去解决啊·
······