2015-09-02 79 views
-1

我有一个分析表,数据库中有列作为用户名,电子邮件和地址。当用户登录时,我想检查用户是否填写了地址。如何查询特定用户名的数据库,并检查地址栏是否为空?Android Parse数据库查询

我正在将数据写入下表中。

final ParseObject testObject = new ParseObject("UserDetails"); 
testObject.put("UserName", userName); 
testObject.put("Email", EmailStr); 

testObject.saveInBackground(new SaveCallback() { 

@Override 
public void done(com.parse.ParseException e) { 
    // TODO Auto-generated method stub 
    if (e == null) { 
     // Success! 
    objectId = testObject.getObjectId().toString(); 

    } else { 
     // Failure! 
      } 
      } 
    }); 

当用户注册时会发生这种情况。在注册后,当用户登录时,我想要编辑UserDetails表中某些特定用户的数据。就像我想检查用户的地址栏是否为空。如果它是空白的,我想强制用户填写它。这仅仅是一个例子。一般来说,我想知道一种方法,我可以在其中修改特定行的某些列。

ParseQuery<ParseObject> query = ParseQuery.getQuery("UserDetails"); 
query.whereEqualTo("UserName", username); 
query.findInBackground(new FindCallback<ParseObject>() { 

     @Override 
     public void done(List<ParseObject> arg0, 
       com.parse.ParseException arg1) { 
      // TODO Auto-generated method stub 
      if (arg1 == null) { 

       userExistance = true; 
       if (arg0.size() == 1) 
        Tv1.setText(username + " exists in UserDeatils DB too"); 
       else if (arg0.size() > 1) 
        Tv1.setText(username 
          + " exists in UserDeatils DB multiple times"); 
       else 
        Tv1.setText(username 
          + " does not exist in UserDeatils DB"); 

      } else { 
       Log.d("score", "Error: " + arg1.getMessage()); 
      } 

     } 
    }); 

如果用户存在于表的UserDetails与否,在登录电子后,我已经实现了上述码T检查。现在我婉检查该用户在的UserDetails类的地址栏。

+1

你真的需要出示[你尝试过什么(http://mattgemmell.com/what-have-you-tried/)..... – 2Dee

+0

对不起我忘记了之前添加的代码,现在我已经添加了它。请给我你的投入 –

回答

0

对于UserDetails,找到用户名。然后针对特定的用户名检查ContactAddress列

ParseQuery<ParseObject> query = ParseQuery.getQuery("UserDetails"); 
query.whereEqualTo("UserName", username); 

query.findInBackground(new FindCallback<ParseObject>() { 

     @Override 
     public void done(List<ParseObject> arg0, 
       com.parse.ParseException arg1) { 
      // TODO Auto-generated method stub 
      if (arg1 == null) { 

       ParseObject p = arg0.get(0); 
       if(p.getString("ContactAddress")==null) 
        { 
         p.put("ContactAddress",address + " " +city +" " +state +" " +country); 
         p.saveInBackground(); 
        } 
      } 
      else { 
       Log.d("score", "Error: " + arg1.getMessage()); 
      } 
     } 
});