作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取从 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/
我是一名优秀的程序员,十分优秀!