2014-11-08 108 views
0

我想从表中删除数据,并能够编写命令,但不幸的是数据没有被删除..没有错误或异常报告,但没有正在发生。没有错误,但没有从Sqlite数据库删除数据使用删除

查看stackoverflow中类似的帖子,但没有什么帮助我,也无法理解我要出错的地方。

下面是我的代码

Calendar c = Calendar.getInstance(); 
c.add(Calendar.MONTH, -0); 
backup_date=((c.get(Calendar.DATE)-1)+"/"+(c.get(Calendar.MONTH)+1)+"/"+c.get(Calendar.YEAR)); 

System.out.println(backup_date); 
       Database.getInstance(getApplicationContext()).getWritableDatabase().beginTransaction(); 
       result=Database.getInstance(getApplicationContext()).getWritableDatabase().delete(tablename, column2 + " < '" + backup_date + "'", null); 
       Database.getInstance(getApplicationContext()).getWritableDatabase().setTransactionSuccessful(); 
       if(result!=1){ 
        Toast.makeText(getApplicationContext(), "Problem with deletion try again", Toast.LENGTH_LONG).show(); 
       } 
       else{ 
        System.out.println("deleted successfully"); 
        Toast.makeText(getApplicationContext(), "Data deleted successfully for the date " + backup_date, Toast.LENGTH_LONG).show(); 
       } 

专家,请帮助我在哪里,我错了......

感谢您的时间

+0

您的比较无法正常工作。例如:'01/01/2015 <12/10/2010'? – njzk2 2014-11-10 15:02:54

+0

也'如果(结果!= 1){'你怎么知道会有1删除? – njzk2 2014-11-10 15:03:17

+0

@ njzk2谢谢你的回复...结果是原始查询的输出....那是我的问题...我怎么才能做出正确的组合...我没有想法...打了我的头..你能帮我 – Siva 2014-11-10 15:12:59

回答

0

看起来你没叫endTransaction

此外,这可能不是你的主要问题,但你的计算日期的逻辑将不会在十二月或一个月的第一天(也可能是其他时间)。不要试图单独操作各个日期字段,而是使用原始日期创建新变量,然后添加一个月并减去一天。然后与那个日期一起工作。试图在真空中调整个别领域永远不会奏效。

+0

感谢您的回复......我终于在子句中调用它......我需要在'endtransactionsuccessful'之后写入吗? – Siva 2014-11-08 15:54:40

+0

它确实需要在'setTransactionSuccessful'后面,但最后一个子句应该没问题,我想。 – StilesCrisis 2014-11-08 16:02:25

+1

对不起,考虑到你的名声,我不应该对你说这个,但是请避免在同一个问题上给出多个答案..谢谢你.. :) – nobalG 2014-11-10 06:11:50