我有一个包含很多表的Sqlite,我想创建一个能够在SQL上搜索的TextBox
,我该怎么做?
答案 0 :(得分:1)
首先:这个问题太大了。第二:你通常不希望人们搜索你的整个数据库...原因很明显:他们不应该看到的内容,如其他用户的密码。 因此,您必须编译应首先搜索的所有内容的列表。在数据库中的每个表上,您可以搜索列,例如:
SELECT linkToResource FROM tableName WHERE allowedContent1 like '%searchphrase%' or allowedContent2 like '%searchphrase%';
假设您的表格形状为ID, linkToResource, allowedContent1, allowedContent2, secretContent1, secretContent2
在Android中,该语句如下所示:
public List<String> getLinksToSearchResults(String searchphrase) {
List<String> result = new ArrayList<String>();
Cursor c = yourDatabase.query(
"yourTableName",
new String[] { "linkToResource" }, // The column you want as a result of the Query
"allowedContent1 like '%?%' OR allowedContent2 like '%?%'", // The where-Clause of the statement with placeholders (?)
new String[] { searchphrase, searchphrase }, // One String for every Placeholder-? in the where-Clause
null, // if you like a order by put it here
null, // group by here
null // having here
);
while (c.moveToNext()) {
result.add(c.getString(0));
}
c.close();
return result;
}
您可以从EditText中检索字符串,如下所示:
String searchphrase = searchphraseEditText.getText();
希望你对它有所了解:D
下次请提供一些更精确问题的代码(例如“为什么以下代码不会返回四位数的int?”)
享受!