如何使用 SQLite SUM() 函数?

How can I use the SQLite SUM() function?

*

我的问题

最近,我 运行 我的一些 Java 代码 [Open Helper] 通过 android 工作室,它给出了以下错误: 我有一个带有 android(java 代码)的登录页面,只是我的问题是时间必须是密码字符串 put 才正确。但如果输入数字密码,则不会。 代码 SqlOpenHelper

package com.example.root.sql2;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.annotation.Nullable;
public class db extends SQLiteOpenHelper {
    public db(Context context) {
        super(context, "login.db", null, 1);
    }
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("CREATE TABLE USER(ID INTEGER PRIMARY KEY AUTOINCREMENT ,NAME TEXT, PASSWORD TEXT)");
    }
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS USER");
        onCreate(sqLiteDatabase);
    }
    public boolean insert (String name , String password){
        SQLiteDatabase db = getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put("NAME", name);
        contentValues.put("PASSWORD", password);
        long ins = db.insert("USER","",contentValues);
        if (ins == -1) return false;
        else return true;
    }
    public boolean login(String name , String password){
        SQLiteDatabase db = getReadableDatabase();
        Cursor cursor = db.rawQuery("SELECT * FROM USER WHERE NAME=? AND PASSWORD=?", new String[] {name , password});
        cursor.moveToFirst();
        if (cursor.getCount()>0) return false;
        else return true;
    }
}

"password" if was string ,password then is true but "password" if was string ,password(numerical) then will not true ... *

我认为你的主要问题是逻辑颠倒了。

你基本上是在说使用if (cursor.getCount()>0) return false;;如果搜索用户找到了用户,则 return false。

我相信你想要if (cursor.getCount()>0) return true;

然而,尽管这不是问题,但使用 moveToFirst 没有任何用处。此外,您可能会遇到问题,因为您没有关闭游标。

我建议您也许使用 :-

public boolean login(String name , String password){
    SQLiteDatabase db = getReadableDatabase();
    Cursor cursor = db.rawQuery("SELECT * FROM USER WHERE NAME=? AND PASSWORD=?", new String[] {name , password});
    int count = cursor.getCount();
    cursor.close();
    return count > 0;
}
  • 获取计数,关闭游标,然后return如果计数大于 0(找到用户密码组合)则为 true,否则为 false;