【问题标题】:Android Insert StatementAndroid 插入语句
【发布时间】:2013-01-18 08:52:55
【问题描述】:

我创建了一个 android 应用程序,用户可以在其中添加、更新和删除数据库中的内容

在我的 DataSource java 文件中,我有以下代码:

public void addWebsite(String sitename, String username, String password) {
        ContentValues values = new ContentValues();
        values.put(MySQLiteHelper.COLUMN_URL, sitename);
        values.put(MySQLiteHelper.COLUMN_USERNAME, username);
        values.put(MySQLiteHelper.COLUMN_PASSWORD, password);
        database.insert(MySQLiteHelper.TABLE_URL, null,values);
    }

上面的代码是插入语句。

public void updateWebsite(WebsiteRecords website){
        ContentValues values = new ContentValues();
        values.put(MySQLiteHelper.COLUMN_URL, website.getSitename());
        values.put(MySQLiteHelper.COLUMN_USERNAME, website.getUsername());
        values.put(MySQLiteHelper.COLUMN_PASSWORD, website.getPassword());
        database.update(MySQLiteHelper.TABLE_URL, values, MySQLiteHelper.COLUMN_ID  + " = " + website.getId(), null);
    }

上面的代码显示了一条更新语句

public void deleteWebsite(WebsiteRecords website) {
        database.delete(MySQLiteHelper.TABLE_URL, MySQLiteHelper.COLUMN_ID  + " = " + website.getId(), null);
    }

最后,上面的代码是用于删除语句的。

我的问题是,我从我的登录中获得了这个用户名,并且我想从中添加、更新和删除具有我从我的登录屏幕获得的用户名的东西。我正在考虑制作

Cursor mCursor = database.rawQuery("INSERT INTO " + TABLE_URL + " VALUES('" + sitename + "', '" + username + "', '" + password + "') " WHERE loginname=?", new String [] {loginname});

或类似的东西,但我害怕它不会工作。更新和删除也是如此。它只会添加、更新、删除、查看登录名为“iamcoolin3d”的文件。

有人可以帮我吗?

【问题讨论】:

  • I am scared that it won't work. -> 甚至没有先尝试?
  • 我已经试过了。只需运行它,当我单击登录按钮时,模拟器会显示“不幸的是我的帐户已停止工作”。并根据我的 logcat 我在我的数据源文件中得到了这个错误

标签: java android eclipse sqlite insert


【解决方案1】:

行:

Cursor mCursor = database.rawQuery("INSERT INTO " + TABLE_URL + " VALUES('" + sitename + "', '" + username + "', '" + password + "') " WHERE loginname=?", new String [] {loginname});

应该是:

Cursor mCursor = database.rawQuery("INSERT INTO " + TABLE_URL + " VALUES('" + sitename + "', '" + username + "', '" + password + "')  WHERE loginname=?", new String [] {loginname});

WHERE之前多了一个"

【讨论】:

  • 我在 TABLE_URL 中遇到错误。数据源似乎无法检测到我的表名。因为我的表名在另一个 java 文件中,即 MySQLiteHelper java 文件。
  • 用 MySQLiteHelper.TABLE_URL 替换它
  • 编辑和删除语句怎么样?如何根据我的代码使它们像插入命令
【解决方案2】:

你最后一行有问题,必须把WHERE放在String里面,否则不行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 2015-04-03
    • 1970-01-01
    • 2018-09-25
    • 2011-03-06
    • 1970-01-01
    相关资源
    最近更新 更多