sql语句没有错误啊 怎么加上就不行了 点击闪退

移动开发 码拜 9年前 (2015-05-10) 1210次浏览 0个评论

按钮的触发事件,一执行sql语句就会出现错误。注释掉sql语句(如下)就是正常的。
之前操作的表示一个视图,是不是不允许更新视图的数据?然后我更新主表的数据去了,但还是报错。点击按钮就闪退,这是为什么啊。贴上 logcat的错误提示

public void onClick(View view) {
       Map<String, Object> map = data.get(position);
       String bookName = ((String)map.get(“text1”)).replace(“书籍号:”,””);;
    
       String time = (String) map.get(“time”);
         
       
       SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);  
       Date date=null;
      try {     
       date = sdf.parse(time);
   }catch (ParseException e) {
   // TODO Auto-generated catch block
    e.printStackTrace();
    }

       long t=date.getTime();
       long temp=24*60*60*1000;
       String dd=sdf.format(30*temp+t);
       //libraryDB = SQLiteDatabase.openOrCreateDatabase(DBManger.DB_PATH + “/” + DBManger.DB_NAME, null);  
     // String sql = “update record set T_return = “+dd+”where B_num=”+bookName;
      //libraryDB.execSQL(sql);
     //libraryDB.close();
      Toast.makeText(getApplicationContext(), dd, Toast.LENGTH_LONG).show();      
      }
     });
     return v;
    }
sql语句没有错误啊  怎么加上就不行了 点击闪退

在线等回复啊  急求 谢谢
10分
错误日志不完整,只指出错误在适配器的147行,建议你检查下返回的time格式,和Date是否引包正确
投票投错了 那个 time的格式和date的包要是sql的不是util的吗
引用 3 楼 ZJ729286823 的回复:

投票投错了 那个 time的格式和date的包要是sql的不是util的吗

Date 引java.util.Date 这个包,

引用的是那个包 。现在换了一种方法实现更新数据了。你看看这样行不行?还有大神 你知道数据库这样修改了怎样更新现在界面的信息不

libraryDB = SQLiteDatabase.openOrCreateDatabase(DBManger.DB_PATH + “/” + DBManger.DB_NAME, null);  
           //String sql = “update record set T_return = “+dd+” where B_num=”+bookName;
          //libraryDB.execSQL(sql);
       //SQLiteDatabase db = sqlHelper.getWritableDatabase();  
       ContentValues values = new ContentValues();  
       values.put(“T_return”, dd);  
       libraryDB.update(“record”, values, “B_num = ?”, new String[] {bookName});  
       libraryDB.close();

20分
引用 5 楼 ZJ729286823 的回复:

引用的是那个包 。现在换了一种方法实现更新数据了。你看看这样行不行?还有大神 你知道数据库这样修改了怎样更新现在界面的信息不

libraryDB = SQLiteDatabase.openOrCreateDatabase(DBManger.DB_PATH + “/” + DBManger.DB_NAME, null);  
           //String sql = “update record set T_return = “+dd+” where B_num=”+bookName;
          //libraryDB.execSQL(sql);
       //SQLiteDatabase db = sqlHelper.getWritableDatabase();  
       ContentValues values = new ContentValues();  
       values.put(“T_return”, dd);
  
千万别这样说,我也是知道点皮毛,看能不能帮助你,,,
不要用SQLiteDatabase.openOrCreateDatabase这种方式,使用SQLiteOpenHelper这个API来操作数据库。
更新UI的话你可以
       libraryDB.update(“record”, values, “B_num = ?”, new String[] {bookName});  
       libraryDB.close();

引用 5 楼 ZJ729286823 的回复:

引用的是那个包 。现在换了一种方法实现更新数据了。你看看这样行不行?还有大神 你知道数据库这样修改了怎样更新现在界面的信息不

libraryDB = SQLiteDatabase.openOrCreateDatabase(DBManger.DB_PATH + “/” + DBManger.DB_NAME, null);  
           //String sql = “update record set T_return = “+dd+” where B_num=”+bookName;
          //libraryDB.execSQL(sql);
       //SQLiteDatabase db = sqlHelper.getWritableDatabase();  
       ContentValues values = new ContentValues();  
       values.put(“T_return”, dd);  
       libraryDB.update(“record”, values, “B_num = ?”, new String[] {bookName});  
       libraryDB.close();

千万别这样说,我也是知道点皮毛,看能不能帮助你。
不要用SQLiteDatabase.openOrCreateDatabase这种方式,使用SQLiteOpenHelper这个API来操作数据库。
更新UI的话你可以在数据库操作完毕之后发Handler啊,或者是用广播机制来更新都可以。如果是小数据的更新,数据库的操作可以放在主线程,如果是批量的最好改在工作线程。然后就是线程通讯更新UI了。

谢谢了  共同进步

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明sql语句没有错误啊 怎么加上就不行了 点击闪退
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!