在SQLite数据库中插入字符串

时间:2017-12-21 10:52:24

标签: android database sqlite android-sqlite

如何在String数据库中存储SQLite

 String et11 = et1.getText().toString();
 String et22 = et2.getText().toString();
 db.execSQL("INSERT INTO ZAKHIRE (USER , PAS) VALUES ( " + et11 + et22 +")");
 db.close();

2 个答案:

答案 0 :(得分:2)

在您的活动中

 DbHelper dbHelper = new DbHelper(getApplicationContext());  
 String  name = mName.getText().toString().trim();
 String  pass = mPasswd.getText().toString().trim();
 dbHelper.insertRecord(name, pass);

DbHelper class

这是在DBhelper中扩展SQLiteOpenHelper的覆盖方法 类。

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE " + TABLE_NAME + "("
                + Name + " TEXT,"
                + Password + " TEXT)";
        db.execSQL(sql);
    }

   void insertRecord(String name, String password) {
        dataBase = getWritableDatabase();
        values = new ContentValues();
        values.put(Name, name);
        values.put(Password, password); 
        Log.e("Values are ", String.valueOf(values));
        dataBase.insert(TABLE_NAME, null, values);
        dataBase.close();
    }

答案 1 :(得分:1)

INSERT INTO ZAKHIRE (USER , PAS) VALUES

插入一个新行,其中 USER PAS 列是 2 VALUES < / strong>括在括号内,用逗号分隔。

假设et11的值为FRED且et22的值为PASSWORD,则VALUES ( " + et11 + et22 +")"等于VALUES (FREDPASSWORD),即只有一个值。

但是,要插入字符串,必须将字符串括在单引号中(数字不必括在单引号中)。

  

通过将字符串括在单引号中形成字符串常量   (&#39)。字符串中的单引号可以通过放置两个来编码   连续单引号 - 如Pascal。 C风格逃脱使用   不支持反斜杠字符,因为它们不是标准字符   SQL。

     

摘自SQL As Understood By SQLite - expression

使用上面的示例,您需要 VALUES ('FRED','PASSWORD')

所以要解决这个问题,你需要 a)用逗号分隔这两个值, b)用引号括起这两个字符串。

所以你可以使用: -

db.execSQL("INSERT INTO ZAKHIRE (USER , PAS) VALUES( '" + et11 + "','" + et22 + ")");
  • 注意! Ramesh R的答案(使用SQLiteDatabase insert方法)是更好的方法;它基本上为你构建SQL,引用字符串和添加逗号等。