2011-07-03 11 views
0

私はthis tutroial about using your own SQLite databaseをフォローしていました。AndroidでSQLiteからデータを取得する際の問題

  • 私のデータベース
  • の準備私のプロジェクトのパッケージに同じEXACT DataBaseHelperクラスのコピー:私は、チュートリアルで説明したようにこれらのステップを行いました。クラスコードthere
  • DataBaseHelperクラスには、fetchDataのメソッドを追加したばかりです。 、その後

    public Cursor fetchData(String table) { 
    String[] selectionArgs = new String[] {"*"}; 
    return myDataBase.query(table, null, null, selectionArgs, null, null, null); 
    } 
    
  • 私はこれやった私の活動のクラスのいずれかに:それは単に与えられた名前でテーブル全体をフェッチしている

    DataBaseHelper myDbHelper; 
    myDbHelper = new DataBaseHelper(this); 
    
    try { 
    
        myDbHelper.createDataBase(); 
    
    } catch (IOException ioe) { 
    
        throw new Error("Unable to create database"); 
    
    } 
    try { 
    
        myDbHelper.openDataBase(); 
    
    } catch (SQLException sqle) { 
    
        throw sqle; 
    
    } 
    
    TextView txt = (TextView) findViewById(R.id.txt); 
    try { 
    //I will use my method to fetch a table named: myTable  
        Cursor c = myDbHelper.fetchData("myTable"); 
        if((Object)c.getCount() != null) 
         txt.setText(c.getCount()); 
        else 
         txt.setText("null"); 
    } catch(Exception e) { 
        txt.setText("error"); 
    
    } 
    

をしかし、私は「エラーを取得しておきます'をTextViewに追加します。私の方法で問題はありますか?

答えて

1

私の問題は何もSQLiteに関連していません。それは愚かな間違いだった: -

\エラーは、ここでは2行目にある:

if((Object)c.getCount() != null) 
    txt.setText(c.getCount()); 

それはこのようにする必要がありますsetText()方法はChaSequencegetCount()方法を受け入れ

txt.setText(""+c.getCount()); 

互換性のないタイプのIntegerを返します。空の文字列を追加することで、簡単な方法で対処できます:)

ありがとうございます。

0
public Cursor fetchData(String table) { 
    return myDataBase.query(table, null, null, null, null, null, null); 
} 

selectionArgsパラメータが間違っているようです。 documentationでは、それは言う:

あなたが挙げられるS は、彼らが選択して表示され という順番で、 selectionArgsからの値に置き換えられます選択、で?。値 は文字列としてバインドされます。

+0

これは私の最初の試行でしたが、うまくいきませんでした。私は代わりにこれを試して、同じ得た。お試しいただきありがとうございます。 – iTurki

+0

あなたのアプリケーションは 'catch'部分に行くので、あなたがどんな例外を取得しているのかチェックしてください。 –

+0

私はそれを理解しました:)私の答えを参照 – iTurki

0

intをObjectとしてキャストし、キャスト値をnullと比較しようとしています。私はあなたがコードはすぐそこで壊れる可能性が高いと言います。

関連する問題