将文本更改为数据库值

时间:2012-09-06 20:14:42

标签: android database sqlite text

按下按钮时我想将文本更改为数据库列值,我知道它错了,但这里是代码:

    private void MostraDados() {
    // TODO Auto-generated method stub
    final TextView text = (TextView) findViewById(R.id.tvUSUARIO);

    Button mostrar = (Button) findViewById(R.id.bMostrar);
    mostrar.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            db = openOrCreateDatabase("dbtest.db", Context.MODE_PRIVATE, null);

            String q = "SELECT * FROM dbtest.db WHERE usuarioorigem='";

            text.setText(q);


            //text.execSQL("DROP COLUMN IF EXISTS usuarioorigem");
        }
    });
}

3 个答案:

答案 0 :(得分:0)

SQL编写不正确。您必须从列中选择。并且您将查询字符串传递给文本视图。您应首先查看如何使用游标查询数据库,以及如何从游标中检索所需内容。

所以我会研究如何使用curosr,所有这些都可以在Android文档中找到,你可能想在模拟器中尝试API演示我相信你可以学习如何在那里使用光标好。所以看看http://developer.android.com/reference/android/database/Cursor.html

在这里,Is Android Cursor.moveToNext() Documentation Correct?

答案 1 :(得分:0)

获得光标后,您可以执行以下操作:

while(c.moveToNext(){

text.setText(c.getString(0))

}

答案 2 :(得分:0)

您的代码缺少一些关键部分,例如管理游标和数据库的DatabaseClass。

private void MostraDados() {

final TextView text = (TextView) findViewById(R.id.tvUSUARIO);

Button mostrar = (Button) findViewById(R.id.bMostrar);
mostrar.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        // our missing a database helper
        MyDatabaseClass dbhelper = new MyDatabaseClass();
        dbhelper.open();

        Cursor result = dbhelper.doMyQuery();
        String mystring = result.getString(0);

        text.setText(mystring);

        dbhelper.close();
    }
});
....
public class WorkoutDbAdapter {
    ....
    public Cursor doMyQuery()
    {
        return this.mDb.query( yourQuery );
    }

}

这是你需要的最低限度,即使上面我错过了很多细节。搜索有关创建和使用数据库的一些教程。

然而,基本上你需要重新获得光标,设置光标的位置,或者cursor.moveNext(),然后获取可以分配给textField的值。

您的源代码缺少对数据库的正确调用以及对游标的访问。希望你会找到一些体面的教程,让你为你充实。