如何在android中的SQLite数据库中检索整列的数据?

时间:2014-07-31 23:47:40

标签: java android sql database sqlite

我一直在查找如何从SQLite数据库中的整个列中检索数据的不同解决方案,但我似乎无法得到正确的答案。其他人的大多数解决方案都给了我一个nullPointerExecption。我还是SQLite相关领域的初学者,所以我对语法仍然有点困惑。我已经尝试隔离光标中的单个列,然后让光标移动到每一行,但这并没有很好的解决。我还尝试将列数据放在游标中,然后将信息传输到int数组中,但这也没有用。我正在尝试:

 public Cursor fetchATopic(String column, String column2) {

    return db.rawQuery("SELECT "+column+", "+column2+" FROM "+TABLE_NAME,null);
}

我的数据库类中的方法是:

 handler=new DataHandler(getBaseContext());
 Cursor c = handler.fetchATopic("EXACTHOURS","EXACTMINUTES");
    int exactHour=0;
    int exactMinute=0;

    if (c != null) 
    {

    if (c.moveToFirst())

    {

     do 
      {
       exactHour = c.getInt(c.getColumnIndex("exactHours"));
       exactMinute = c.getInt(c.getColumnIndex("exactMinutes"));

       textView.setText(textView.getText()+exactHours+exactMinutes);
      } while (c.moveToNext());
     }
    }

这是我的主要课程。主要技术上的代码应该将textView更改成一堆乱七八糟的数字,因为它只是将一堆整数加在一起,但是这甚至不会发生,因为我在行上得到了nullPointerException: / p>

 Cursor c = handler.fetchATopic("EXACTHOURS","EXACTMINUTES");

这让我相信我的数据库中的方法存在问题,但同样,我认为我的代码是正确的,但显然我做错了。

以下是我表格中的列:

public static final String EXACTHOURS="exactHours";
public static final String EXACTMINUTES="exactMinutes";

表格创建:

 public static final String TABLE_CREATE="create table mytable(priority INTEGER not null,"
        + "leastHours INTEGER not null,leastMinutes INTEGER not null,exactHours INTEGER not null"
        + ",exactMinutes INTEGER not null,setHours INTEGER not null,setMinutes INTEGER not null"
        + ",setAmPm text not null,activityName text not null);";

logcat的:

 07-31 19:56:15.316: E/AndroidRuntime(14793): FATAL EXCEPTION: main
 07-31 19:56:15.316: E/AndroidRuntime(14793): java.lang.IllegalStateException: Could not execute method of the activity
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at android.view.View$1.onClick(View.java:3704)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at android.view.View.performClick(View.java:4231)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at android.view.View$PerformClick.run(View.java:17385)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at android.os.Handler.handleCallback(Handler.java:615)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at android.os.Handler.dispatchMessage(Handler.java:92)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at android.os.Looper.loop(Looper.java:137)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at android.app.ActivityThread.main(ActivityThread.java:4953)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at java.lang.reflect.Method.invokeNative(Native Method)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at java.lang.reflect.Method.invoke(Method.java:511)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at dalvik.system.NativeStart.main(Native Method)
 07-31 19:56:15.316: E/AndroidRuntime(14793): Caused by: java.lang.reflect.InvocationTargetException
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at java.lang.reflect.Method.invokeNative(Native Method)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at java.lang.reflect.Method.invoke(Method.java:511)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at android.view.View$1.onClick(View.java:3699)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   ... 11 more
 07-31 19:56:15.316: E/AndroidRuntime(14793): Caused by: java.lang.NullPointerException
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at com.example.daymanager.DataHandler.fetchATopic(DataHandler.java:125)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   at com.example.daymanager.DayTimeline.StartDay(DayTimeline.java:178)
 07-31 19:56:15.316: E/AndroidRuntime(14793):   ... 14 more

如果能给我一个关于如何创建这种方法的全新示例,那么请发布它。

0 个答案:

没有答案