Android 使用SQLite数据库时出现IllegalStateExcepton

Android 使用SQLite数据库时出现IllegalStateExcepton,android,android-sqlite,Android,Android Sqlite,当我运行以下代码时,我会在Toast消息中显示此异常:Java.lang.IllegalStateExcepton:对字段槽0,-1的请求不正确。numRows=1,numColumns=1 SQLiteDatabase sb; String g="o"; try { sb=SQLiteDatabase.openDatabase("data/data/com.example.datatestx/ma", null, SQLiteDatabase.CREATE_IF

当我运行以下代码时,我会在Toast消息中显示此异常:
Java.lang.IllegalStateExcepton:对字段槽0,-1的请求不正确。numRows=1,numColumns=1

SQLiteDatabase sb;
    String g="o";
    try {
        sb=SQLiteDatabase.openDatabase("data/data/com.example.datatestx/ma", null, SQLiteDatabase.CREATE_IF_NECESSARY);

        sb.execSQL("create table if not exists blac  (" + " phone text  , " + " ftime  text, " + " ttime text );  "    );

        sb.execSQL( "insert into blac(phone, ftime,ttime) values ('01711233434', '333333','33333' );"  );
        sb.execSQL( "insert into blac(phone, ftime,ttime) values ('01761233433', '777' ,'77777');"  );
        sb.execSQL( "insert into blac(phone, ftime,ttime) values ('01712333323', '999','33433' );"  );
        Cursor c1 = sb.rawQuery( "select count(*) as Total from blac", null);
    if(c1.getCount()>0){

    c1.moveToFirst();
    do {
        g=g+c1.getString(c1.getColumnIndex("phone"));

    }while(c1.moveToNext());
    }  c1.close();
        sb.close();

         Toast.makeText(getApplicationContext(), "Success!"+g, Toast.LENGTH_LONG).show();   
    }
    catch (Exception e)
    {

    Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();     
    }

我不知道这为什么不起作用。有人能帮忙吗?

在您的
查询中,选择您要求的
计数(*)为总计
,这意味着您的结果集将有一个名为“总计”的字段,其中包含总行数

因此,从这个结果集中读取
phone
字段是没有意义的

试着替换

Cursor c1 = sb.rawQuery( "select count(*) as Total from blac", null);


请发布crashfiddler的整个logcat输出,现在在logcat中出现类似“sqlite returned:error code=1,msg=near“as”:syntax error”的异常。我刚才编辑了查询,它必须是
“select*from blac”
(而不是
“select*as Total from blac”
Cursor c1 = sb.rawQuery( "select * from blac", null);