在SQLite数据库中插入字符串

问题描述 投票:-4回答:2

如何在String数据库中存储SQLite

 String et11 = et1.getText().toString();
 String et22 = et2.getText().toString();
 db.execSQL("INSERT INTO ZAKHIRE (USER , PAS) VALUES ( " + et11 + et22 +")");
 db.close();
android database sqlite android-sqlite
2个回答
2
投票

In your Activity

 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
投票

INSERT INTO ZAKHIRE (USER , PAS) VALUES

是说插入一个新行,其中列USER和PAS是括在括号内的2个值,它们用逗号分隔。

假设et11具有值FRED并且et22具有值PASSWORD,则VALUES ( " + et11 + et22 +")"等于VALUES (FREDPASSWORD),即仅一个值。

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

通过将字符串括在单引号(')中形成字符串常量。字符串中的单引号可以通过在行中放入两个单引号来编码 - 如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,引用字符串和添加逗号等。
© www.soinside.com 2019 - 2024. All rights reserved.