gpt4 book ai didi

java - 如何在 execSQL() 中使用变量?

转载 作者:行者123 更新时间:2023-12-01 14:36:53 24 4
gpt4 key购买 nike

我正在尝试获取从 EditText 字段存储的一些值并将它们存储到我的 SQLLite 数据库中。

我有以下字符串变量:

网站名称_地址_用户_pass

这是我尝试使用的 Sql 命令:

SQLiteDatabase db = openOrCreateDatabase("SiteManager", MODE_PRIVATE,
null);
db.execSQL("CREATE TABLE IF NOT EXISTS SiteTable (Name VARCHAR, Address VARCHAR, Usernname VARCHAR, Password VARCHAR, PORT INT(4), Passive BIT);");
db.execSQL("INSERT INTO SiteTable VALUES ('" + site_name + "','"
+ _address + "','" + _user + "','" + _pass + "'," + _port + ","
+ _passive + ");");

我正在另一个 Activity 中检查这样的值:

SQLiteDatabase db = openOrCreateDatabase("SiteManager",
MODE_PRIVATE, null);
Cursor c = db.rawQuery("SELECT * FROM SiteTable", null);
c.moveToFirst();
Toast.makeText(this, c.getString(c.getColumnIndex("Name")),
Toast.LENGTH_LONG).show();
db.close();

在调试器中,它显示 c 没有任何值,但列名在那里。所以这让我觉得我尝试在 SQL 语句中使用变量的方式有问题。我做错了什么?

最佳答案

如果您使用的是标准 Android 绑定(bind),其 Javadoc 为 here ,然后您可以通过查看 Javadoc 中的 execSQL 重载来找到要调用的正确代码。请参阅SQLiteDatabase.html#execSQL(String, Object[]) .

现在,Javadoc 表示 execSQL 不能用于 SELECT/INSERT/UPDATE/DELETE。相反,存在三个 insertXXX 方法,每个方法都在 ContentValues 对象中获取附加数据。因此,您可以使用新行的数据构造该对象,它看起来像一个 Map

关于java - 如何在 execSQL() 中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16409994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com