android - Android从数据库获取数据

标签 android database sqlite limit tablecolumn

我有一个页面可以从数据库中检索用户数据 但是经过一整天的尝试,我只能得到表的列名,而不能得到里面的值。

这是我创建数据库的代码

 public static final String LASTLOGIN = "lastuser"; 
 public static final String USER_ID = "suser_id";
 public static final String USER_NAME = "suser_name";
 public static final String USER_PASSWORD = "spassword";
 public static final String PRIME_ID = "id";

 private static final String TABLE_USER = 
         "create table "+ LASTLOGIN+" ("
        +PRIME_ID+" integer primary key autoincrement, "
        + USER_ID + " text, "
        + USER_NAME +" text, "
        +USER_PASSWORD+" text); ";

这里是实现获取用户数据的函数

public Cursor getuser()
{
    String[] columns = new String[]{PRIME_ID, USER_NAME, USER_PASSWORD};
    Cursor cursor = sqLiteDatabase.query(
           LASTLOGIN, columns, null, null, null, null, PRIME_ID +" DESC");
    Log.d("TAG", columns[1]);
    return cursor;
}

这是我显示结果的代码

mySQLiteAdapter = new SQLiteAdapter(this);
mySQLiteAdapter.openToWrite();

cursor = mySQLiteAdapter.getuser();
String[] resultvalue = new String{
         SQLiteAdapter.PRIME_ID,SQLiteAdapter.USER_NAME, SQLiteAdapter.USER_PASSWORD};
Toast.makeText(this, resultvalue[0]+resultvalue[1], Toast.LENGTH_LONG).show();

并且toast结果只显示列名而不显示里面的值,我有什么错误吗?我想将限制设置为 1,但在哪里设置?

谢谢你帮助我

最佳答案

您尝试读取值的方式完全错误。 你创建一个数组

String[] resultvalue = new String[]{
                       SQLiteAdapter.PRIME_ID,
                       SQLiteAdapter.USER_NAME,
                       SQLiteAdapter.USER_PASSWORD};

之后,您从该数组中读取值 0 和 1。 你的 toast 工作绝对正确,因为你在这个数组中定义了列名!

如果您想显示查询中的值,请这样做:

    while(cursor.moveToNext()){
            Integer str1 = str 1 + cursor.getInteger(1);
            String str2 =str2 + cursor.getString(2);
       Toast.makeText(this, str1 + str2, Toast.LENGTH_LONG).show();
    }

或接收正确索引的更好方法:

cursor.getInteger( cursor.getColumnIndex(SQLiteAdapter.PRIME_ID) );
cursor.getString( cursor.getColumnIndex(SQLiteAdapter.USER_NAME) );

关于android - Android从数据库获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16667408/

相关文章:

java - 如何修复 Android 中的 'Attempt to invoke ' void android.widget.ListView.setAdapter(android.widget.ListAdapter )' on a null object reference' 错误

Android:由于 firebase/com.google.android.gms:play-services-auth 版本冲突,无法解析 GoogleSignInClient

android - 是否可以从谷歌地图中提取元素?

c# - 如何在 C# 中更新数据源

android - SQLite Database for Android 应用强制关闭

android - 我必须向布局添加什么才能隐藏标题栏?

.net - 使用 Entity Framework 批准对实时数据的更改

java - 如何在 Realm 中获取父对象

objective-c - 为什么我在 xcode 控制台中收到此 CPSqliteStatementPerform 错误

Excel/SQLite 日期序列号