Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用id sqlite获取行?_Java_Android_Sqlite_Android Sqlite - Fatal编程技术网

Java 如何使用id sqlite获取行?

Java 如何使用id sqlite获取行?,java,android,sqlite,android-sqlite,Java,Android,Sqlite,Android Sqlite,这是一个简单的!然而,我错过了一些东西。请帮帮我。 在这里,我试图通过id获取值,但无法这样做。即使更改了id的值,它也会返回相同的值 db = openOrCreateDatabase("DBSOURCE", 0, null); Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE ID="+id+"", null); cursorc.moveToFirst(); int NameID = cursorc

这是一个简单的!然而,我错过了一些东西。请帮帮我。 在这里,我试图通过id获取值,但无法这样做。即使更改了id的值,它也会返回相同的值

    db = openOrCreateDatabase("DBSOURCE", 0, null);
    Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE ID="+id+"", null);
    cursorc.moveToFirst();

    int NameID = cursorc.getColumnIndex("Name");
    int mobilenumberID = cursorc.getColumnIndex("MoblieNumber");

    edName.setText(cursorc.getString(NameID));
    edMobNum.setText(cursorc.getString(mobilenumberID));

    cursorc.close();

    db.close();
1- 或者最好使用参数化语句

String query = "SELECT COUNT(*) FROM " + tableName + " WHERE columnName = ?";
cursor = db.rawQuery(query, new String[] {comment});
2-如果条件为c.moveToFirst()或c.getCount()>0或(!c.isAfterLast())时使用

试试这个

Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE ID='"+id+"'", null);
试用

Cursor cursorc = db.rawQuery("select * from list where ID = ?", new String[] {id+""});
这样试试看

    Suppose long id=5;
    String[] col=new String[]{KEY_ROWID,KEY_NAME,KEY_ADDRESS};  // your column which data u want to retrive if id is same 
    Cursor c=db.query(DATABASE_TABLE, col, KEY_ROWID+"="+id,null, null, null, null);
    if(c!=null){
    c.moveToFirst();
    // get data here which u want accroding to ur requirement 
    }

id列标题实际上是“id”吗?或者该变量设置为“_id”(Android数据库中主键的常用列名)

如果是后者,则查询不正确,因为您使用“ID”作为文字列名。尝试将其更改为:

Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE " + ID + " = " + id, null); 
甚至这个:

Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE _id = " + id, null); 

在您的表中,字段ID的类型是什么?它的类型是int,是表的自动增量主键。写入while循环以从cursorok获取所有值。但既然id是主键,它不是只返回一行吗?无论如何,我现在将尝试while循环,并将返回。根据您的列名进行更改,以支持您的列名=\u,而不是字符串键\u ROWID=“\u id”与数据库\u表和其他字段相同
Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE _id = " + id, null);