我有应用程序,用户输入特定日期的名称和其他详细信息。我需要检查值/名称用户是否尝试添加已存在于数据库列名称中。我有这个代码,但这不起作用,因为它只选择一个值。感谢
Cursor c = dbe.rawQuery("SELECT name FROM tbl_user WHERE meeting_date LIKE'" + mydate + "'", null);
if ((c.getString(3)).equals(editTextName.getText().toString()))
{
// do something
}
答案 0 :(得分:2)
如果您只检查字段中是否存在值,最简单的方法是使用适当的过滤器进行选择计数。
的内容
SELECT count(*)
FROM tbl_user
WHERE meeting_date LIKE ' + my_date'
AND name = ' + editTextName.getText() + '
这将使您能够轻松快速地确定表中是否存在这些值。
如果您需要检查多个表,那么您必须在这些表之间进行连接并相应地编写过滤器。
如果碰巧你没有很好的处理SQL 这个网站是一个很好的起点: W3Schools SQL Tutorial
希望这有帮助。
答案 1 :(得分:1)
您只选择了一列(name
)而在您的if
中,您试图比较(不存在的)第三列的内容(不确定为什么要尝试这样做,但显然是一个问题)。
为什么不使用列标题,而不是试图这样做呢?
所以你的if
看起来像这样(并且光标在列中的位置无关紧要):
if (c.getString(c.getColumnIndex("name")).equals(editTextName.getText().toString()))