4

我有应用程序,用户在其中输入特定日期的姓名和其他详细信息。我需要检查值/名称用户是否尝试添加已存在于数据库列名称中。我有这段代码,但这不起作用,因为它只选择一个值。谢谢

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
}
4

2 回答 2

3

如果您只检查字段中是否存在值,最简单的方法是使用适当的过滤器进行选择计数。

类似的东西

SELECT count(*)
FROM tbl_user
WHERE meeting_date LIKE ' + my_date'
AND name = ' + editTextName.getText() + '

这将使您能够轻松快速地确定这些值是否存在于您的表中。

如果您需要检查多个表,则必须在这些表之间进行连接并相应地编写过滤器。

如果碰巧你没有很好地处理 SQL。
这个站点是一个很好的起点: W3Schools SQL 教程

希望这可以帮助。

于 2012-04-29T17:50:45.080 回答
1

您只选择一列 ( name),但在您if尝试比较(不存在的)第三列的内容(不确定您为什么要这样做,但这显然是个问题)。

与其尝试那样做,为什么不使用列标题呢?

所以你if看起来像这样(并且列在光标中的位置无关紧要):

if (c.getString(c.getColumnIndex("name")).equals(editTextName.getText().toString()))
于 2012-04-29T18:05:16.667 回答