2011-01-20 7 views
0

私はアプリケーションデータベースへのクエリから結果を得ているカーソルを持っています。私は以前に行から文字列を取得することができたので、データベースに少なくとも1つの正しいエントリがあることを知っています。Androidカーソルのヘルプ

次に、結果に対応するためにロジックの一部を変更し、c.getString(0)を呼び出すときに突然nullが返されるようになりました。関連するコードは以下に掲載されています。

私はAndroidとJavaが初めてのので、問題の原因となっている微妙な部分が見つからないことがあります。

Cursor c = context.getContentResolver().query(tempJobName.build(), 
      null, null, null, null); 

    for (c.moveToFirst(); c.isAfterLast() == false; c.moveToNext()) 
    { 
     Log.w(TAG, c.getString(0)); 
     if (c.getString(0).equalsIgnoreCase(jobName)) 
     { 
      existed = true; 
      break; 
     } 
    } 
+0

作業中のコードを前から追加できますか?私はそれがあなたが行った変更の中で単純なものかどうかを見たいと思います。 –

+0

私はできると思います。 D:私は作業コードをコミットしていませんでした。プロジェクトの最終的な部分ではないので、私の変更はなくなりました。 – Lunchbox

+0

どのIDEですか?ほとんどのIDE Storeのローカル履歴。 elicpseを使用している場合、チーム - >ローカル履歴を表示すると変更履歴が保持されます。 –

答えて

1

詳細を追加したい場合があります。しかし、あなたがいくつかのレコードを見つけたので、あなたの問題の解決は簡単です。この行をこれで置き換えてください。

int columnIndex = c.getColumnIndex(COLUMN_NAME);// You could also use getcolumnIndexorThrow variant. 
c.getString(columnIndex); 

と(表の最初の列が:)右変更される場合があります)

c.getString(0); 

これが動作しない場合は、あなたのテーブルには列がありません。あなたは間違った木を吠えるだけです。

+0

うん、私のデータベースで何かがうまくいかなかった。助けてくれてありがとう。私はそれを削除して再試行します。 – Lunchbox