第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

編寫(xiě) SQLite 數(shù)據(jù)庫(kù)查詢(xún)來(lái)獲取用戶(hù)并傳遞表單用戶(hù)表的正確方法是什么

編寫(xiě) SQLite 數(shù)據(jù)庫(kù)查詢(xún)來(lái)獲取用戶(hù)并傳遞表單用戶(hù)表的正確方法是什么

皈依舞 2023-06-28 16:12:01
我有用戶(hù)信息表,需要獲取用戶(hù)密碼和用戶(hù)用戶(hù)名查詢(xún): Cursor cursor = db.rawQuery("select "+User.COL_NAME +User.COL_PASS +" from " + User.TABLE_NAME+" WHERE "+User.COL_NAME+ User.COL_PASS +"=?", new String[]{UserName , PassWord});但我不能這樣做,錯(cuò)誤消息是:   Caused by: android.database.sqlite.SQLiteException: no such column: UserNamePassword (code 1): , while compiling: select UserNamePassword from users WHERE UserNamePassword=?這是我的代碼public String getUserByUserAndPassword(String UserName , String PassWord) {    String All_info="" ;    Cursor cursor = db.rawQuery("select "+User.COL_NAME +User.COL_PASS +" from " + User.TABLE_NAME+" WHERE "+User.COL_NAME+ User.COL_PASS +"=?", new String[]{UserName , PassWord});    while (cursor.moveToNext()) {        String user_1 = cursor.getString(cursor.getColumnIndex(User.COL_NAME));        String pass_1 = cursor.getString(cursor.getColumnIndex(User.COL_PASS));        All_info= user_1+"/"+pass_1;    }    cursor.close();    return All_info ;}引起原因:android.database.sqlite.SQLiteException:沒(méi)有這樣的列:UserNamePassword(代碼1):,編譯時(shí):從用戶(hù)中選擇UserNamePassword WHERE UserNamePassword=?
查看完整描述

3 回答

?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

您的查詢(xún)存在語(yǔ)法錯(cuò)誤,但首先我想提及代碼中邏輯上錯(cuò)誤的其他部分。

你的查詢(xún)應(yīng)該返回0or 1row 因?yàn)槲也虏淮嬖?2 個(gè)用戶(hù)具有相同用戶(hù)名的情況,對(duì)吧?

所以不需要循環(huán)while。一個(gè)簡(jiǎn)單的if聲明就足夠了。

另外為什么要查詢(xún)返回用戶(hù)名和密碼?

您已經(jīng)認(rèn)識(shí)它們,因?yàn)槟褂盟鼈儊?lái)搜索該用戶(hù)。

如果沒(méi)有用戶(hù)擁有這些數(shù)據(jù),則查詢(xún)將不會(huì)返回任何內(nèi)容。

因此,將您的查詢(xún)更改為:


Cursor cursor = db.rawQuery(

    "SELECT COUNT(*) FROM " + User.TABLE_NAME +

    " WHERE "+ User.COL_NAME + " = ? AND " + User.COL_PASS +" = ?", 

    new String[]{UserName , PassWord}

);

0如果不存在這樣的用戶(hù),或者1存在的話(huà),此查詢(xún)將僅返回 1 行和 1 個(gè)帶有值的整數(shù)列。

其余的代碼需要:


if (cursor.moveToFirst()) {

    int counter = cursor.getInt(0);

    if (counter > 0) {

        All_info= UserName + "/" + PassWord;

    }

}

cursor.close();

return All_info;


查看完整回答
反對(duì) 回復(fù) 2023-06-28
?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

您寫(xiě)了錯(cuò)誤的查詢(xún)。下面的查詢(xún)將起作用,但為什么您要使用用戶(hù)名和密碼本身編寫(xiě)查詢(xún)來(lái)獲取用戶(hù)名和密碼,因此,要么在 select 語(yǔ)句中寫(xiě)入所需的列名,要么只為整個(gè)記錄寫(xiě)入 * 。

Cursor cursor = db.rawQuery("select "+User.COL_NAME +", "+User.COL_PASS +" from " + User.TABLE_NAME+" WHERE "+User.COL_NAME+ "=?" + "and" + User.COL_PASS +"=?", new String[]{UserName , PassWord});



查看完整回答
反對(duì) 回復(fù) 2023-06-28
?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

您的查詢(xún)是錯(cuò)誤的,請(qǐng)通過(guò)控制臺(tái)打印查看最終查詢(xún)。你的代碼應(yīng)該是:

Cursor cursor = db.rawQuery("select "+User.COL_NAME +", "+User.COL_PASS +" from " + User.TABLE_NAME+" WHERE "+User.COL_NAME+"='"+UserName+"' AND "+ User.COL_PASS +"='"+PassWord+"'");



查看完整回答
反對(duì) 回復(fù) 2023-06-28
  • 3 回答
  • 0 關(guān)注
  • 245 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)