SQLiteDatabase database;
list1=new ArrayList<String>();//时间
list2=new ArrayList<String>();//评语
list3=new ArrayList<String>();//名称
SqlOperate_read(cxtContext);//读取数据库已存在的案例
boolean temp=true;//可写入
//判断是否有重复 如果有重复不可写入
database=cxtContext.openOrCreateDatabase("ali_name.db", MODE_PRIVATE, null);
if (list1!=null) {//判断是否有时间重复的案例
for (int i = 0; i < list1.size(); i++) {
if (a.equals(list1.get(i))) {
temp=false;
break;
}
}
}
//如果没有重复可以写入
if (temp) {
try {//在数据库中写入时间评语及案例名称 写成string语句时字符串需要加单引号 用加号连接
String xString="INSERT INTO instance (time,comment,name) values("+"'"+a+"'"+","+"'"+b+"'"+","+"'"+name+"'"+")";
database.execSQL(xString);
} catch (SQLiteException e) {
// 跟踪程序,直接进入到这里
database.execSQL(CREATE_BASE_TABLE);
try {//执行SQL语句时,string不用加单引号
database.execSQL("INSERT INTO instance (time,comment,name) values("+"'"+a+"'"+","+"'"+b+"'"+","+"'"+name+"'"+")");
} catch (SQLiteException e2) {
// TODO: handle exception
return "保存失败";
}
finally {database.close();}//调试到这里后,又跳到return "保存失败" 不知道哪里出的问题 保存不成功!!
}
database.close();
return "保存成功";
}
------解决思路----------------------
捕获异常应该把异常打出来吧,你这样直接返回是不是异常信息都查看不了了。
------解决思路----------------------
把catch (SQLiteException e2) {
return "保存失败";
}具体异常打印出来,e2.printstack什么方法忘了,另外在遍历时有重复的Log.i("Tag","数据有重复")看看
------解决思路----------------------
你的SQLiteDatabase中有execSQL这个方法吗?你直接写一个execSQL(String sql,Object [] args) 然后构建sql语句的时候,直接insert into instance (time,comment,name) values(?,?,?,?)...