执行对数据库的查询操作,如果查询不成功,就跳出一个对话框,显示信息。
但执行应用以后,发现应用停止运行了,log如下
12-27 13:33:36.879: I/SqliteDatabaseCpp(1037): sqlite returned: error code = 1, msg = no such table: info, db=/data/data/com.example.v2/files/mydb.db3
12-27 13:33:36.929: D/AndroidRuntime(1037): Shutting down VM
12-27 13:33:36.929: W/dalvikvm(1037): threadid=1: thread exiting with uncaught exception (group=0x40a031f8)
12-27 13:33:36.949: E/AndroidRuntime(1037): FATAL EXCEPTION: main
12-27 13:33:36.949: E/AndroidRuntime(1037): java.lang.NullPointerException
=================================================
java代码如下:
ArrayList<Map<String, Object> > listdate=null;
////////////第一次执行时,表未创建的情况,查询信息为空
try
{
listdate=dbtool.searchTable(timeString, dateString, placeString);
} catch (SQLiteException se)
{
alertDialog.show();
}
=============================
searchTable代码如下
public ArrayList<Map<String, Object>> searchTable(String time,String date,String place)
{
ArrayList<Map<String, Object>> list=null;
Cursor cursor=null;
String sql=null;
sql="select * from info where 1=1";
if(time!=null&&!"".equals(time))
sql=sql+"and time="+time;
if(date!=null&&!"".equals(date))
sql=sql+"and date="+date;
if(place!=null&&!"".equals(place))
sql=sql+"and place="+place;
cursor=db.rawQuery(sql, null);
while(cursor.moveToNext())
{
Map<String, Object> item=new HashMap<String, Object>();
item.put("_id", cursor.getString(0));
item.put("time",cursor.getString(1));
item.put("date", cursor.getString(2));
item.put("place", cursor.getString(3));
item.put("event", cursor.getString(4));
list.add(item);
}
return list;
}
=================================
现在的问题是,我已经设置了如果查询不成功就执行catch内的语句,LOG显示没有这个表(因为我没创建),所以查询不成功。但为什么没有执行catch内的语句?????请大家帮帮忙
但执行应用以后,发现应用停止运行了,log如下
12-27 13:33:36.879: I/SqliteDatabaseCpp(1037): sqlite returned: error code = 1, msg = no such table: info, db=/data/data/com.example.v2/files/mydb.db3
12-27 13:33:36.929: D/AndroidRuntime(1037): Shutting down VM
12-27 13:33:36.929: W/dalvikvm(1037): threadid=1: thread exiting with uncaught exception (group=0x40a031f8)
12-27 13:33:36.949: E/AndroidRuntime(1037): FATAL EXCEPTION: main
12-27 13:33:36.949: E/AndroidRuntime(1037): java.lang.NullPointerException
=================================================
java代码如下:
ArrayList<Map<String, Object> > listdate=null;
////////////第一次执行时,表未创建的情况,查询信息为空
try
{
listdate=dbtool.searchTable(timeString, dateString, placeString);
} catch (SQLiteException se)
{
alertDialog.show();
}
=============================
searchTable代码如下
public ArrayList<Map<String, Object>> searchTable(String time,String date,String place)
{
ArrayList<Map<String, Object>> list=null;
Cursor cursor=null;
String sql=null;
sql="select * from info where 1=1";
if(time!=null&&!"".equals(time))
sql=sql+"and time="+time;
if(date!=null&&!"".equals(date))
sql=sql+"and date="+date;
if(place!=null&&!"".equals(place))
sql=sql+"and place="+place;
cursor=db.rawQuery(sql, null);
while(cursor.moveToNext())
{
Map<String, Object> item=new HashMap<String, Object>();
item.put("_id", cursor.getString(0));
item.put("time",cursor.getString(1));
item.put("date", cursor.getString(2));
item.put("place", cursor.getString(3));
item.put("event", cursor.getString(4));
list.add(item);
}
return list;
}
=================================
现在的问题是,我已经设置了如果查询不成功就执行catch内的语句,LOG显示没有这个表(因为我没创建),所以查询不成功。但为什么没有执行catch内的语句?????请大家帮帮忙
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货