0

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

    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");
        }
    });
}
4

3 回答 3

0

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

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

在这里,Android Cursor.moveToNext() 文档是否正确?.

于 2012-09-06T20:30:33.787 回答
0

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

while(c.moveToNext(){

text.setText(c.getString(0))

}
于 2012-09-06T21:23:11.003 回答
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 的值。

您的源代码缺少对数据库的正确调用和对游标的访问。希望您能找到一些体面的教程,为您充实其余部分。

于 2012-09-06T22:12:54.377 回答