亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 SQLite SUM() 函數?

如何使用 SQLite SUM() 函數?

慕工程0101907 2021-12-30 20:25:51
我的問題最近,我通過 android studio 運行了我的一些 Java 代碼 [Open Helper],它給出了以下錯誤: 我有一個帶有 android(java 代碼)的登錄頁面,當時間必須是密碼時,我的問題只是字符串,將是真的。但如果是輸入數字密碼,就不對了。 代碼 SqlOpenHelperpackage 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;    }}“密碼”如果是字符串,則密碼為真,但“密碼”如果是字符串,則密碼(數字)則不為真... *
查看完整描述

1 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

我相信你的主要問題是你的邏輯顛倒了。


你基本上是說使用if (cursor.getCount()>0) return false;; 如果搜索用戶找到該用戶,則返回 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;

}

這將獲取計數,關閉游標,然后如果計數大于 0(找到用戶密碼組合)則返回 true,否則返回 false;


查看完整回答
反對 回復 2021-12-30
  • 1 回答
  • 0 關注
  • 245 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號