如果字符串字段以加号(+)开头,则更新Sqlite表?

时间:2012-07-18 19:25:30

标签: java android database sqlite

我的android应用程序有一个sqlite表。该表有一个字符串字段(电话)。当我想插入或更新电话号码以+加号开头(例如“+905331234567”)时,它会忽略加号。它只写905331234567。 但是当我用空格(或任何其他除数字)字符修改值时, (例如“+905331234567”),那就没问题了。

update friend set phone = "+905331234567"; //905331234567
update friend set phone = " +905331234567";// +905331234567

感谢您的回复。 凯末。


修改

创建字符串:

private static final String CREATE_FRIEND =  // create table 
        "create table " + FriendBean.DB_TABLE_NAME + "(" + 
        FriendBean.KEY_ROWID + " integer primary key autoincrement, " +
        FriendBean.KEY_contactID + " String, " +
        FriendBean.KEY_name + " String, " +
        FriendBean.KEY_phone + " String, " +
        FriendBean.KEY_accessCode + " String, " +
        FriendBean.KEY_flag + " int " +
        ");";

插入方法:

public void insertFriend(FriendBean bean) {
    SQLiteStatement statement = database.compileStatement(FriendBean.getInsertSQL());    

    statement.bindString(1,bean.getContactID());
    statement.bindString(2,bean.getName());
    statement.bindString(3,bean.getPhone() +"");
    statement.bindString(4,bean.getAccessCode());
    statement.bindLong(5,bean.getFlag());

    long id= statement.executeInsert();
}

类别:

public class FriendBean{

    public static final String DB_TABLE_NAME = "friend";

    public static final String KEY_contactID = "contactID";
    public static final String KEY_name = "name";
    public static final String KEY_phone = "phone";
    public static final String KEY_accessCode = "accessCode";
    public static final String KEY_flag = "flag";
    ...

解决方案: 字符串字段类型替换为文字

的引用 http://www.sqlite.org/datatype3.html 和 评价。

2 个答案:

答案 0 :(得分:3)

解决方案:

字符串字段类型替换为文字

创建表朋友(rowid整数主键自动增量,         电话文字);

引用

  1. http://www.sqlite.org/datatype3.html
  2. 评价。

答案 1 :(得分:0)

尝试rawQuery:

String sql = "INSERT INTO myTable(Col1, ColDate) VALUES(1,'+7777')";
db.rawQuery(sql ,null);