0

我对带有 SQlite 的 android 应用程序中的代码行有疑问:

if(db != null)
    {
        db.delete("Users", null, null);

        //Insert 5 users
        for(int i=1; i<=5; i++)
        {
            //Generate the data
            int code = i;
            String name = "User" + i;

            //Insert data on table Users
            db.execSQL("INSERT INTO Users (code, name) " +
                       "VALUES (" + code + ", '" + name +"')");
        }
    }

所有代码都运行良好,但在一行中:db.execSQL("INSERT INTO Users (code, name) " + "VALUES (" + code + ", '" + name +"')");如果我删除'角色,应用程序就会崩溃。谁能告诉我为什么我必须使用'角色和"?为什么"还不够?

我是菜鸟,对不起,如果我的问题太基本了。

4

2 回答 2

2

首先,天哪,永远不要那样写 SQL。按照其他答案所说的去做插入。

其次,它不起作用,因为 name 列是一个字符串,因此需要在插入语句中引用它。执行插入的 SQL 是:

INSERT INTO Users (code, name) VALUES (666, 'Bruce Dickinson')
于 2013-10-11T01:48:47.640 回答
1

使用一个类ContentValues来设置编译 SQL 语句的信息。

前任:

ContentValues content = new ContentValues();
content.putString("name", "Bruce Dickinson");
content.putInt("code", 666);

SqliteDatabase database = helper.getWritableDatabase();
database.insert("tablename", null, content);
于 2013-10-11T00:33:05.900 回答