从Sql数据库到数组的数据(Data from Sql Database to an Array)
我想把一些来自Sql数据库的数据放在一个数组中
这是我的数组代码:
openDB(); Cursor c = myDb.getSpalte(); while (!c.isAfterLast()) { s1nInt[i] = c.getInt(1); i++; c.moveToNext(); } c.close(); closeDB();这是我的getSpalte();代码getSpalte(); 方法:
public Cursor getSpalte() { String where= null; Cursor c = db.query(true, DATABASE_TABLE, KEY_KALOA, where, null, null, null, null, null); if (c != null) { c.moveToFirst(); } return c; }如果我运行这个我得到这些例外:
06-27 13:34:01.021: E/CursorWindow(24334): Failed to read row 0, column 1 from a CursorWindow which has 1 rows, 1 columns.现在我得到了这些命令的异常:
Number[] series2Numbers = {/*s1nInt[i-6],s1nInt[i-5],s1nInt[i-4],s1nInt[i-3],s1nInt[i- 2],s1nInt[i-1],*/s1nInt[i]};这是我的例外:
Graph.onStart() line: 75 Graph(Fragment).performStart() line: 1801 FragmentManagerImpl.moveToState(Fragment, int, int, int, boolean) line: 937 FragmentManagerImpl.moveToState(int, int, int, boolean) line: 1106 BackStackRecord.run() line: 690 FragmentManagerImpl.execPendingActions() line: 1571 FragmentManagerImpl$1.run() line: 447 Handler.handleCallback(Message) line: 733I would like to put some data from a Sql database in an Array
Here is my code for the array:
openDB(); Cursor c = myDb.getSpalte(); while (!c.isAfterLast()) { s1nInt[i] = c.getInt(1); i++; c.moveToNext(); } c.close(); closeDB();And here is my code for the getSpalte(); Method:
public Cursor getSpalte() { String where= null; Cursor c = db.query(true, DATABASE_TABLE, KEY_KALOA, where, null, null, null, null, null); if (c != null) { c.moveToFirst(); } return c; }And if I run this I get these Exception:
06-27 13:34:01.021: E/CursorWindow(24334): Failed to read row 0, column 1 from a CursorWindow which has 1 rows, 1 columns.now I got for these command an exception:
Number[] series2Numbers = {/*s1nInt[i-6],s1nInt[i-5],s1nInt[i-4],s1nInt[i-3],s1nInt[i- 2],s1nInt[i-1],*/s1nInt[i]};This is my Exception for this:
Graph.onStart() line: 75 Graph(Fragment).performStart() line: 1801 FragmentManagerImpl.moveToState(Fragment, int, int, int, boolean) line: 937 FragmentManagerImpl.moveToState(int, int, int, boolean) line: 1106 BackStackRecord.run() line: 690 FragmentManagerImpl.execPendingActions() line: 1571 FragmentManagerImpl$1.run() line: 447 Handler.handleCallback(Message) line: 733最满意答案
游标从0开始,在访问数据之前必须移动到第一行:
while(c.moveToNext()) { s1nInt[i] = c.getInt(1); i++; }The cursor starts at 0 and must be moved to the first row before accessing data:
while(c.moveToNext()) { s1nInt[i] = c.getInt(1); i++; }更多推荐
发布评论