Android创建sqlite数据库,以创建表项目就崩溃这是为毛?
写了一段代码创建sqlite数据库使用模拟器测试,每次执行到创建表的代码的时候为什么程序就崩溃了?求解代码如下:publicclassMyDBSQLiteextendsS...
写了一段代码创建sqlite数据库使用模拟器测试,每次执行到创建表的代码的时候为什么程序就崩溃了?求解
代码如下:
public class MyDBSQLite extends SQLiteOpenHelper {
private static final String tag = "create";
public MyDBSQLite(Context context) {
super(context, "itheima.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.v(tag, "数据库被创建了");
db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone varchar(20)");
Log.v(tag, "表被创建了");
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
}
Activity代码如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void add(View view){
MyDBSQLite helper = new MyDBSQLite(this);
SQLiteDatabase db = helper.getWritableDatabase();
Random random = new Random();
db.execSQL("insert into info (name,phone) values (?,?)",new Object[]{"zhangsan"+random.nextInt(100),"110-"+random.nextInt(100)});
db.close();
}
} 展开
代码如下:
public class MyDBSQLite extends SQLiteOpenHelper {
private static final String tag = "create";
public MyDBSQLite(Context context) {
super(context, "itheima.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.v(tag, "数据库被创建了");
db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone varchar(20)");
Log.v(tag, "表被创建了");
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
}
Activity代码如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void add(View view){
MyDBSQLite helper = new MyDBSQLite(this);
SQLiteDatabase db = helper.getWritableDatabase();
Random random = new Random();
db.execSQL("insert into info (name,phone) values (?,?)",new Object[]{"zhangsan"+random.nextInt(100),"110-"+random.nextInt(100)});
db.close();
}
} 展开
4个回答
展开全部
建表语句写错了,phone varchar(20) 后面还少了一个括号。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
db已经被创建了,重复创建加个异常处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
难道是 info后面没有空格的原因?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |