【问题标题】:How to fetch all column values based on email?如何根据电子邮件获取所有列值?
【发布时间】:2015-06-20 09:52:23
【问题描述】:

我想从表 tblReg 中获取我的所有列。它有注册、姓名、密码、电子邮件和联系方式列,注册时检查的电子邮件是唯一的列;值在一个电子邮件的表中只存在一次。

我通过将电子邮件与密码匹配并通过我的家庭活动中的意图传递电子邮件的值作为KeyName 来登录。现在我想根据我的电子邮件从 SQLlite 获取所有详细信息,我通过 Intent 从getExtra 接收。

这是我的家庭活动代码

public class activity_home extends Activity {
    DatabaseHandler dbh = new DatabaseHandler(this);
String regid,emailid,name,contact,data;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity_home);
        TextView lblEmail = (TextView) findViewById(R.id.textView1);
        TextView lblReg = (TextView) findViewById(R.id.textView1);
        TextView lblName = (TextView) findViewById(R.id.textView1);
        dbh.open();
        try {
            data = getIntent().getExtras().getString("keyName");

            Cursor m1 = dbh.getAllData(data);
            if (m1 != null) {
                m1.moveToFirst();
                name = m1.getString(m1.getColumnIndex("Name"));
                regid = m1.getString(m1.getColumnIndex("Registration"));
                contact = m1.getString(m1.getColumnIndex("Contact"));
                emailid = m1.getString(m1.getColumnIndex("Email"));
                m1.close();
            }

            if (!data.equals("")) {

                lblEmail.setText(Html.fromHtml("Email: <b>" + emailid + "</b>"));
                lblReg.setText(Html.fromHtml("Email: <b>" + regid + "</b>"));
                lblName.setText(Html.fromHtml("Email: <b>" + name + "</b>"));
            } else {
                Toast.makeText(getApplicationContext(), "Data Null Aya hai Bhai", Toast.LENGTH_SHORT).show();
            }
        }
        catch (Exception e)
        {
            String ex=e.toString();
            Toast.makeText(getApplicationContext(), ex, Toast.LENGTH_SHORT).show();
        }
            }

我在使用查询的地方使用了database handler 类,我认为查询有问题,请看一下。我共享游标代码,我哪里错了?

 public Cursor getAllData(String parentKey) {

    String[] fields = new String[] {
            KEY_REGID,
            KEY_NAME,
            KEY_PASSWORD,
            KEY_EMAIL,
            KEY_MOBILENO + " as _id "
    };

    Cursor cursor = mDb.query(tblReg,
            fields,
            KEY_EMAIL + " = ?",
            new String[] {
                    "" + parentKey
            },
            null,
            null,
            KEY_NAME);

    cursor.moveToFirst();
    return cursor;
}

【问题讨论】:

    标签: android sqlite android-intent homescreen


    【解决方案1】:

    我已经解决了根据column 值从表中获取数据的问题,现在我想分享一下草率的错误。

    TextView lblEmail = (TextView) findViewById(R.id.textView1);
                TextView lblReg = (TextView) findViewById(R.id.textView1);
                TextView lblName = (TextView) findViewById(R.id.textView1);
    

    此代码必须按如下所述编写

    TextView lblEmail = (TextView) findViewById(R.id.textView1);
                    TextView lblReg = (TextView) findViewById(R.id.textView2);
                    TextView lblName = (TextView) findViewById(R.id.textView3);
    

    其余的一切都很好,任何想要学习如何根据用户传递的值获取所有列值的观众都可以参考上面的代码。

    【讨论】:

      猜你喜欢
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 2019-06-04
      • 2014-07-15
      • 1970-01-01
      相关资源
      最近更新 更多