Android 游标始终返回空

Android 游标始终返回空,android,database,sqlite,cursor,sms,Android,Database,Sqlite,Cursor,Sms,在下面给出的代码中,当我运行应用程序时,数据正在被获取 写入表中,但当我获取数据时,它总是给我一个 空光标。任何帮助都将不胜感激 我的应用程序的数据库如下所示 正确地编写查询,即使是空格也会给您带来麻烦。。使用logcat指出您在方法putInformation中遇到问题的行,在填充ContentValues对象之后,您实际上不会向数据库写入任何内容。您可以将UNIQUE约束添加到USER\u name列并使用,而不是删除具有相同名称的行。insertWithOnConflict(,null,S

在下面给出的代码中,当我运行应用程序时,数据正在被获取 写入表中,但当我获取数据时,它总是给我一个 空光标。任何帮助都将不胜感激

我的应用程序的数据库如下所示


正确地编写查询,即使是空格也会给您带来麻烦。。使用logcat指出您在方法
putInformation
中遇到问题的行,在填充
ContentValues
对象之后,您实际上不会向数据库写入任何内容。您可以将
UNIQUE
约束添加到
USER\u name
列并使用
,而不是删除具有相同名称的行。insertWithOnConflict(,null,SQLiteDatabase.CONFLICT\u REPLACE)
是否尝试更新某些字段?您的putinfo方法不完整。。。您是否忘记在数据库中插入或替换值?
public class todo extends Activity {


        private CheckBox chkIos;
        EditText txtphoneNo;
        String isc="n";
        String phoneNo="000";
        String name="000";
    Context mcontect =this;

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_todo);
             //declaration
        chkIos = (CheckBox) findViewById(R.id.checkBox);

        txtphoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
            //get_user_name
            SharedPreferences pref = getSharedPreferences("lin", 0);
            name = pref.getString("KEY", null);
            //database_3
        DatabaseOperations3 DO  = new DatabaseOperations3(mcontect);
        Cursor CR = DO.getInformation(DO);
        Log.d("=====>", "todo");
        if (CR.moveToFirst()) {
            Log.d("=====>", "todo");

            do {
                if (name.equals(CR.getString(0))) {
                    Log.d(name, CR.getString(0));

                    phoneNo = (CR.getString(1));
                    Log.d(name, CR.getString(0));
                    Log.d(phoneNo, CR.getString(1));
                    Log.d(isc, CR.getString(2));
                    isc = (CR.getString(2));
                    txtphoneNo.setText(phoneNo);
                }
            } while (CR.moveToNext());
            check();
        }}
public void check() {
   String s="c";
    if(isc.equals(s)){
        Log.d("=====>", "check");

        chkIos.setChecked(true);

    }
}
    public void cbonclick(View v) {

        if (chkIos.isChecked()) {

        isc = "c";
        }
}
    public void xxx(View v) {
        phoneNo = txtphoneNo.getText().toString();
        DatabaseOperations3 DO  = new DatabaseOperations3(mcontect);

        DO.putInformation(DO,name,phoneNo,isc);
        Log.d("=====>", "Database_3_7");
        Intent intenti = new Intent(this, ProxAlertActivity.class);
        startActivity(intenti);
    }


            protected void sendSMSMessage() {
            Log.d("Send SMS", "************");

            String message = "Reached";
                Log.d("=====>", "message");

              if (isc.equals("c")&&phoneNo!="000") {
                Log.d("=====>", "eqto");

                try {
                    Log.d("=====>", "try");

                    SmsManager smsManager = SmsManager.getDefault();
                    smsManager.sendTextMessage(phoneNo, null, message, null, null);
                    Toast.makeText(getApplicationContext(), "SMS sent.",
                            Toast.LENGTH_LONG).show();

                } catch (Exception e) {
                    Log.d("=====>", "excep");

                    Toast.makeText(getApplicationContext(),
                            "SMS faild, please try again.",
                            Toast.LENGTH_LONG).show();
                    e.printStackTrace();
                }
            }
        }
    }
public class DatabaseOperations3 extends SQLiteOpenHelper {
     static final int database_version = 1;
     static final String USER_NAME = "user_name";
     static final String USER_PHONE = "user_ph";
     static final String USER_SELECT = "user_select";
     static final String DATABSE_NAME = "phone_info.db";
     static final String TABLE_NAME = "ph_info";
    public DatabaseOperations3(Context context) {
        super(context, DATABSE_NAME, null, database_version);
        Log.d("Database Operations","Database Created");
    }

@Override
    public void onCreate(SQLiteDatabase sdb) {
        Log.d("Database Operations3","Table Created");
        sdb.execSQL("CREATE TABLE " + TABLE_NAME +
                "( "  + USER_NAME + " text, " +
                USER_PHONE + " text, " + USER_SELECT + " text)");

    }

       public void onUpgrade(SQLiteDatabase sq,int arg1,int arg2) {
        Log.d("DatabaseHelper", "onUpgrade");
        sq.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(sq);

    }
    public void putInformation(DatabaseOperations3 dop,String name,String ph,String isc)
    {
        SQLiteDatabase SQ = dop.getWritableDatabase();
        SQ.rawQuery("DELETE FROM " + TABLE_NAME + " WHERE " + USER_NAME + " = ?", new String[]{name});
        ContentValues cv = new ContentValues();
        cv.put(USER_NAME,name);
        cv.put(USER_PHONE,ph);
        cv.put(USER_SELECT,isc);
        Log.d(name,ph);

    }
    public Cursor getInformation(DatabaseOperations3 dop)
    {
        Log.d("DatabaseHelper", "getinfo");

        SQLiteDatabase SQ = dop.getReadableDatabase();
        String[] columns = {USER_NAME, USER_PHONE,USER_SELECT};
        Cursor CR = SQ.query(TABLE_NAME,columns,null, null, null, null, null);
        return CR;
 }
}