2 o casper ne O_Casper_ne 于 2013.09.29 13:40 提问

当 string 中包含“-”时,不能删除 sqlite 中的指定行

在下面的 listview 中显示名字和号码,这些数据都是从数据库中获取。当我删除比如数字区域是 "123456"时,能正常运行。但是问题是不能删除一些 list items ,比如它的数字区域是 "888-888-00"。
我使用的代码 :
DatabaseHelpher.java

private static final String KEY_NAME = "name";
private static final String KEY_NUMBER = "number";

public void deleteContacts(String name, String number){
    //Raw Query wont work for Deletion
    db = this.getWritableDatabase();
    System.out.println("deleted number: "+number+"name: "+name);
    String deleteQuery = "Delete from "+CONTACTS_TABLE_NAME+" where "+KEY_NUMBER+" = "+number;
    //db.rawQuery("Delete from "+CONTACTS_TABLE_NAME+" where "+KEY_NUMBER+" = "+number, null);
    db.execSQL(deleteQuery);
    db.close();
}

MainActivity.java
在 oncreate() method 方法中包括:

selectedListView.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {

            final HashMap<String, String> toDelete = (HashMap<String, String>) selectedListView.getItemAtPosition(position);

            AlertDialog.Builder deleteDialog = new AlertDialog.Builder(MainActivity.this);
            deleteDialog.setTitle("Confirm Delete...");
            deleteDialog.setMessage("Are you sure you want delete this '"+toDelete.get("name")+"' Contact?");

            deleteDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {

                    dataBaseHelpher.deleteContacts(toDelete.get("name"), toDelete.get("number"));
                    dialog.dismiss();
                    updateList();
                }
            });
            deleteDialog.setNegativeButton("No", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {

                    dialog.dismiss();
                }
            });
            deleteDialog.show();
        }
    });
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于删除cell某行和清除sqlite对应数据问题
删除某一tableview的某一行并且删除对应数据。  先删数据库  再删table view! - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexP
SQLite3 delete限制删除行数的问题
delete限制删除行数的问题 (2007-12-26 13:13) 分类: SQLITE     好久没来了,最近老是开会,也没机会学习,还好工作一步步步入正规,公司管理越来越规范化,最近又开始计划下一步的工作了。     用到了sqlite3数据库,这个问题本来很令我困惑的,一问同事,又轻而易举的解决了,太佩服他了,要好好努力了,自己知道的这么少。哎,先把今天的收获说一
vi命令删除某行至某行,删除某行至结尾
用到两个命令 。 1  删除xx行至xx行。 : 1,10d 命令解释:删除第一行到第10行 2  直接跳转到文件结尾行  按下大写的g  --- G 在文尾输入  : 1,.d 命令解释: 删除从第一行到本行,即删除第一行到结尾
Shell 删除指定文件中含有指定字符的行
Shell 删除指定文件中含有指定字符的行,2个参数,脚本中有注释
使用正则删除含有指定字符串的行
notepad++ 下使用下列命令 1、删除含有指定字符串的行 替换:  ^.*(指定字符串).*$  为空 例如,删除含有"0x000017a4"的行, 替换:  ^.*0x000017a4.*$   为空     2、删除//行注释 替换: //.*$  为空 【注意】此正则会误删在引号中的'//',  如 'https://www.baidu.com'     3、删除/
linux下删去文件中包含某个字符串的行
删除文件中带有某个字符串的所有行 a.txt sed -e '/xxx/d' a.txt -->打印出来 文件中包含xxx的行都不会显示 使用-i参数的话就直接修改文件了 修改指定字符串 sed -e 's/aaa/bbb/g'  全局aaa替换为bbb 打印指定行 cat a.txt | sed -n '1,3p'  打印文件a.txt的1到3行
linux删除文件中含有某字符的行
sed -i -e '/string/d' file 脚本,从键盘输入删除含某字符行 #!/bin/sh FILENAME=file.txt # 可换为$1 if [ ! -f file.txt ];then echo "$FILENAME no found" exit 1 fi echo -n "INPUT SOME THING: "
vim小技巧 -- 删除包含特定字符串的行
删除包含something的所有行 :g/something/d
Vim删除不包含指定字符串的行
Vim 删除不包含指定字符串的行: :g/xxx/d,删除包含xxx的行 :v/xxx/d,删除不含xxx的行 :%s/xxx//gn,统计xxx个数,n表示只报告匹配的个数而不进行实际的替换。 详见「:help :v」或「help :g」
jquery删除table当前行
jquery删除当前行,只需传this,即可:   "+rs+" 删除 //删除当前行      function deleteTr(nowTr){                         //多一个parent就代表向前一个标签,                          // 本删除范围为两个标签,即向前两个paren