android - 如何在 MainClass 中显示游标计数(某物)返回

标签 android sqlite cursor

如您所见,我想获取指定学生的总数。

我已经尝试了下面的代码,但我没有得到我正在寻找的东西!

//数据库助手

public Cursor MyCredits(String StudentNo){
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery("SELECT COUNT(CourseCredit) FROM tblCourses JOIN tblMyCourses ON tblCourses.CourseNumber = tblMyCourses.CourseNumber WHERE StudentNumber = ? ",new String[]{ StudentNo } );
    return cursor;
}

//主要内容

String StudentNo = commonValues.SaveStudentID)
        Cursor cursor1 = db.MyCredits(StudentNo);
        if (cursor1.getCount() > 0){
            while (cursor1.moveToNext()){
                Log.i(TAG, cursor1.getString(0));
            }
        }else{
            Toast.makeText(context, "You didn't selected any Course", Toast.LENGTH_SHORT).show();
        }

我试图获得他的总学分的用户选择了三门类(class):2.5、5、2 学分。 我预计 Count(CourseCredit) 的输出为 9.5,但实际输出为 2.5。

最佳答案

您可能希望将查询基于所选行的列的SUM,而不是所选行的COUNT:-

Cursor cursor = db.rawQuery("SELECT sum(CourseCredit) FROM tblCourses JOIN tblMyCourses ON tblCourses.CourseNumber = tblMyCourses.CourseNumber WHERE StudentNumber = ? ",new String[]{ StudentNo } );

在您的数据库助手中,您可以使用(替换当前的 MyCredits 方法):-

public double MyCredits(String StudentNo){

    double rv = 0;
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery("SELECT sum(CourseCredit) AS credits FROM tblCourses JOIN tblMyCourses ON tblCourses.CourseNumber = tblMyCourses.CourseNumber WHERE StudentNumber = ? ",new String[]{ StudentNo } );
    if (cursor.moveToFirst()) {
        rv = cursor.getDouble(cursor.getColumnIndex("credits"));
    }
    cursor.close();
    return rv;
}

请注意,如果没有与学号匹配的行,则返回值为 0。

然后您可以在 Main 中使用以下链接:-

double credits = db.MyCredits(commonValues.SaveStrudentID);
if (credits > 0) {
    Log.i(TAG, String.valueOf(credits));
} else {
    Toast.makeText(context, "You didn't selected any Course", Toast.LENGTH_SHORT).show()
}

关于android - 如何在 MainClass 中显示游标计数(某物)返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56728717/

相关文章:

node.js - 使用 Sequelize 和 Sqlite3 设置多对多关联

java - 格式化预加载数据库的列 android

jquery - 将光标更改为圆形?

java - 设置 Windows 光标

c - 扫描文本迫使我进入下一行,以确认输入。对于特殊情况我可以阻止这种情况吗?

android - 从在 Android 上运行的 Open Images 数据集中获取预训练的 Inception v3 模型

android - 如何实现类似Google Play Music的抽屉导航选择器

android - 引用库项目 .. 为 R 文件提供 NoClassDefoundError

ruby-on-rails - Rails 错误 500, "We' 抱歉,出了点问题”

android - 无法加载库 "libdl.so.2"