Trang login với android và sqlite

Chào các bạn, như tiêu đề mình gặp vấn đề phần lấy dữ liệu username và password trong database
Source code của mình : Phần truy vấn cơ sở dữ liệu:

void main()
{
 public String getSinlgeEntry(String userName)
    {
        SQLiteDatabase db=this.getReadableDatabase();
        String password="";
        Cursor c=db.query("Login", null, " username=?", new String[]{userName}, null, null, null);
        if(c.moveToFirst())
            do {

                password=c.getString(2);
            }
            while (c.moveToNext());
        return password;
    }
}

Đây là hàm main của mình

void main()
{
public class MainActivity extends AppCompatActivity {
    Database db = new Database(MainActivity.this);
    ArrayList<Login> arrlogin = new ArrayList<>();
    EditText et_name;
    EditText et_pass;
    Button confirm,set;
    TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_name=(EditText)findViewById(R.id.editText4);
        et_pass=(EditText)findViewById(R.id.editText5);
        confirm=(Button)findViewById(R.id.button);
        tv=(TextView)findViewById(R.id.textView);
        set=(Button)findViewById(R.id.button3);
        set.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                show();
            }
        });
        confirm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String username=et_name.getText().toString();
                String password=et_pass.getText().toString();
                String passconfirm=db.getSinlgeEntry(username);
                tv.setText(passconfirm);
                if(password.equals(passconfirm)){
                    Toast.makeText(MainActivity.this, "Dang nhap thanh cong", Toast.LENGTH_SHORT).show();
                }
                else{
                    Toast.makeText(MainActivity.this, "Dang nhap that bai", Toast.LENGTH_SHORT).show();
                }
            }
        });


    }
    public void show(){
        final Dialog dialog = new Dialog(this);
        dialog.setContentView(R.layout.dong_login);
        final EditText etusername=(EditText)dialog.findViewById(R.id.editText);
        EditText etpass=(EditText)dialog.findViewById(R.id.editText2);
        Button btn=(Button)dialog.findViewById(R.id.button2);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String id=etusername.getText().toString().trim();
                String pass=et_pass.getText().toString().trim();
                Login lg= new Login(id,pass);
                db.themuser(lg);
                dialog.dismiss();

            }
        });
        dialog.show();
    }
}
}

Cứ mỗi lần mình thêm dữ liệu ví dụ username hathanhdung pass123456 lúc khi đăng nhập thì nó báo đang nhập thất bại rồi add thêm một dòng nữa ví dụ thanhdung123 pass 456789 thì nó cũng đăng nhập thất bại nhưng khi mình điền thanhdung123 pass 123456(mật khẩu của dòng trên) thì nó lại chấp nhận moi mọi người giúp đỡ!!!

Có khi nào là do hàm add vào database bị sai không?

có vẻ bạn lấy value cột Passwork bị sai rồi!
-> Bạn đang lấy dữ liễu kiểu n+1 nên dữ liệu username cột 1 mà passwork cột 2 nên mới bị như thế bạn xem lại phần lấy passwork nha! có chắc làm c.getString(2) hay không?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?