【发布时间】:2016-05-19 13:32:32
【问题描述】:
我是 SQLITE DB 的新手
我正在使用这些代码行来创建 DB、Table 和插入、检索数据
try {
SQLiteDatabase db = openOrCreateDatabase("Custom_Database", MODE_PRIVATE, null);
db.execSQL("Create Table If Not Exists Age (FirstName Varchar, LastName Varchar, age int(3));");
db.execSQL("Insert into Age Values ('Inzimam', 'Tariq', 22);");
Cursor c = db.rawQuery("Select * From Age", null);
c.moveToFirst();
Toast.makeText(getApplicationContext(), c.getString(c.getColumnIndex("pName")) + " " + c.getString(c.getColumnIndex("fName")), Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "Database Created Your code is working ! ", Toast.LENGTH_SHORT).show();
c.moveToNext();
db.close();
}catch (Exception e){
Toast.makeText(getApplicationContext(), "Error : " +e.getMessage(), Toast.LENGTH_LONG).show();
}
但它抛出异常无法来自
CursorWinsow的第 0 行、第 -1 列。 在访问数据之前确保游标已正确初始化 来自它。
我认为c.moveToFirst(); 应该为那个但是它不这样做为什么?
相同的代码如何在其他项目中运行。它在这个应用程序中给出错误的原因是什么?
编辑:在将 FisrtName 和 LastName 存储在 String 中并使用 Strings to Toast 之后,
String name = c.getString(0);
String father = c.getString(1);
Toast.makeText(getApplicationContext(), "Name = " + name + " " + father, Toast.LENGTH_SHORT).show();
但是我想知道在Toast 或Strings 中获取数据有什么区别
谢谢
【问题讨论】:
标签: database sqlite android-sqlite