Cursor cursor=db.rawQuery("select*from student",null); String etNum1,etScore1; etNum1=cursor.getString(0); etScore1= cursor.getString(1);这段代码错那了
时间: 2024-01-09 15:03:57 浏览: 94
这段代码有两个问题:
1. 需要先将游标(cursor)移动到第一行才能获取数据。可以使用 `cursor.moveToFirst()` 方法实现。
2. `cursor.getString(int columnIndex)` 方法中的 columnIndex 参数应该是从 0 开始的,表示要获取的列的索引。所以应该改为 `cursor.getString(0)` 和 `cursor.getString(1)`。
正确的代码应该是这样的:
```java
Cursor cursor = db.rawQuery("SELECT * FROM student", null);
if (cursor.moveToFirst()) {
String etNum1 = cursor.getString(0);
String etScore1 = cursor.getString(1);
}
```
相关问题
Cursor cursor=db.rawQuery("select*from student",null); String etNum1,etScore1; cursor.moveToFirst(); etNum1=cursor.getString(0); etScore1= cursor.getString(1); txtCount.setText(etNum1,etScore1);错哪了
这段代码有几个错误,可以改成以下代码:
```
Cursor cursor = db.rawQuery("select * from student", null);
String etNum1 = "", etScore1 = "";
if (cursor.moveToFirst()) {
etNum1 = cursor.getString(cursor.getColumnIndex("num"));
etScore1 = cursor.getString(cursor.getColumnIndex("score"));
}
txtCount.setText(etNum1 + " " + etScore1);
```
主要问题是:
1. `setText` 方法只接受一个字符串作为参数,需要将 `etNum1` 和 `etScore1` 拼接成一个字符串。
2. 需要使用 `getColumnIndex` 方法获取指定列名的索引,然后通过索引获取对应的数据。
Cursor cursor= db.rawQuery("select*from course where cNumber=? OR cName=?",new String[]{input,input}); if(cursor.moveToFirst()){ ContentValues values=new ContentValues(); values.put("scNumber",cursor.getString(0)); values.put("scName",cursor.getString(1)); db2.insert("student_course",null,values); Toast.makeText(MainActivity2.this,"加入成功",Toast.LENGTH_LONG).show(); }else{ Toast toast = Toast.makeText(getApplicationContext(), "无效的班课号", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } cursor.close(); Toast错哪了
根据代码的上下文来看,Toast应该是放在if和else语句块外面的,因为无论是加入成功还是无效的班课号,都需要显示Toast。所以正确的代码应该是这样的:
```
Cursor cursor= db.rawQuery("select * from course where cNumber=? OR cName=?",new String[]{input,input});
if(cursor.moveToFirst()){
ContentValues values=new ContentValues();
values.put("scNumber",cursor.getString(0));
values.put("scName",cursor.getString(1));
db2.insert("student_course",null,values);
Toast.makeText(MainActivity2.this,"加入成功",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "无效的班课号", Toast.LENGTH_SHORT).show();
}
cursor.close();
```
这样就可以正确地显示Toast了。
阅读全文