4

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";
    ...

解決策: String Fieldtype がTextに置き換えられました。

http://www.sqlite.org/datatype3.html およびコメントを参照 します。

4

2 に答える 2

3

解決:

String FieldtypeがTextに置き換えられました。

テーブルのフレンドを作成します (ROWID 整数の主キーの自動インクリメント、電話のテキスト)。

参考文献

  1. http://www.sqlite.org/datatype3.html
  2. コメント。
于 2012-07-19T06:15:35.863 に答える
0

rawQuery を試してください:

String sql = "INSERT INTO myTable(Col1, ColDate) VALUES(1,'+7777')";
db.rawQuery(sql ,null);
于 2012-07-19T04:37:19.270 に答える