从Android Studio中的SQLite数据库中以字符串形式检索数据 [英] Retrieve Data As String From SQLite Database in Android Studio

查看:451
本文介绍了从Android Studio中的SQLite数据库中以字符串形式检索数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在SQLite数据库中保存名称,然后在另一个活动中我想将该名称检索为字符串值.但是我无法从数据库中获取数据.请帮帮我.我的代码如下,

I want to save name in the SQLite Database and later in another activity I want to retrieve that name as a String Value. But I am not being able to get data from the database. Help me please. My code is given below,

数据库助手:

    private static final String TAG = "DatabaseHelper";
    private static final String TABLE_NAME = "user";
    private static final String COL1 = "ID";
    private static final String COL2 = "name";

    public void onCreate(SQLiteDatabase db) {String createTable = 
    "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY 
    AUTOINCREMENT, " + COL2 +" TEXT)"; 
    db.execSQL(createTable);}

    public boolean addData(String item) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL2, item);

            Log.d(TAG, "addData: Adding " + item + " to " + TABLE_NAME);

            long result = db.insert(TABLE_NAME, null, contentValues);

            if (result == -1) {
                return false;
            } else {
                return true;
            }
        }

MainActivity:

MainActivity:

    mDatabaseHelper=new DatabaseHelper(this);
    Username=(EditText)findViewById(R.id.user);
    saveBtn=(Button)findViewById(R.id.button);

    saveBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    String newEntry = Username.getText().toString();
                            AddData(newEntry);
                            Username.setText("");

    Intent intent = new Intent(MainActivity.this, HomeActivity.class);
                        startActivity(intent);
                    }
                });

            }
            public void AddData(String newEntry) {
                boolean insertData = mDatabaseHelper.addData(newEntry);
        }
        }

HomeActivity:

HomeActivity:

public class HomeActivity extends AppCompatActivity {

    DatabaseHelper mDatabaseHelper;
    String Username;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        mDatabaseHelper = new DatabaseHelper(this);

    }

}

在这里,在此家庭活动中,我想以字符串形式获取用户名,但我不知道该怎么做.请帮助我...

Here, in this home activity i want to get the username as a string but I don't know how to do that. Help me please...

推荐答案

要检索数据,请运行查询以将数据提取到游标中.游标将由0-n行组成,并且将具有查询中定义的列数.然后,您移动各行,并使用适当的Cursor get ????? 方法来获取实际数据.

To retrieve data, you run a query that extracts the data into a Cursor. The Cursor will consist of 0-n rows and will have as many columns as defined in the query. You then move through the rows and use the appropriate Cursor get????? methods to get the actual data.

作为示例,您可以将以下方法添加到DatabaseHelper中:-

As an example you could add the following method to your DatabaseHelper :-

public String getName(long id) {

    String rv = "not found";
    SqliteDatabase db = this.getWritableDatabase();
    String whereclause = "ID=?";
    String[] whereargs = new String[]{String.valueOf(id)};
    Cursor csr = db.query(TABLE_NAME,null,whereclause,whereargs,null,null,null);
    if (csr.moveToFirst()) {
        rv = csr.getString(csr.getColumnIndex(COL2));
    }
    return rv;
}

以上内容可由String name = mDatabaseHelper.getName(1);使用.

  • 请注意,这假设存在ID为1的行.

这篇关于从Android Studio中的SQLite数据库中以字符串形式检索数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆