2011-10-25 43 views
2

データベースconnection.butテーブルを作成するために、次のコードを使用しています。sqliteエラーコード= 1、msg =このようなテーブルなし

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.os.Bundle; 
import android.provider.BaseColumns; 
import android.widget.TextView; 

public class DatabaseHelper extends SQLiteOpenHelper { 

    private static final String DATABASE_NAME = "notification.db"; 
    public static final String Title = "Title"; 
    public static final String NotificationId = "NotificationId"; 
    public static final String Subject = "Subject"; 
    public static final String TABLE = "notification"; 
    public static final String Flag = "Flag"; 



    public DatabaseHelper(Context context) 
    { 
     super(context,DATABASE_NAME,null,1); 
     android.util.Log.v("DatabaseHelper","Constructor called"); 
    } 

    public void onCreate(SQLiteDatabase db) 
    { 
     android.util.Log.v("SQLiteDatabase","SQLiteDatabase create called"); 
     String sql = "create table notification" + "(" + BaseColumns._ID 
     + " integer primary key autoincrement, "+ NotificationId + " text, " + Title + " text, " + Subject + " text, "+ Flag + " text);" 
     ; 
     db.execSQL(sql); 


    } 


} 

これは、他のクラスで私の挿入機能

protected void insert(String notificationid,String title, String subject,String flag) { 
     // TODO Auto-generated method stub 

      eventsData = new DatabaseHelper(this); 
      Log.i("insert", "inside insert"); 
      Log.i(TAG, "insert"+notificationid); 
      Log.i(TAG, "insert"+title); 
      Log.i(TAG, "insert"+subject); 
      Log.i(TAG, "insert"+flag); 
      SQLiteDatabase db = eventsData.getWritableDatabase(); 
      android.util.Log.v("insert","SQLiteDatabase called"); 
      ContentValues values = new ContentValues(); 
      android.util.Log.v("insert","ContentValues called"); 
      values.put(DatabaseHelper.NotificationId, notificationid); 
      values.put(DatabaseHelper.Title, title); 
      values.put(DatabaseHelper.Subject, subject); 
      values.put(DatabaseHelper.Flag, flag); 
      android.util.Log.v("insert","after values.put"); 
      db.insert(DatabaseHelper.TABLE, null, values); 
      Log.i("insert", "after insert"); 

    } 

私はコンソールshell.Canからテーブル通知を作成した場合、私はそのようなテーブルfound.However同じコードが正常に動作しないエラーを取得していたデータを挿入しながらいずれにせよ、私はこれを助けます。おかげさまで

答えて

13

あなたはonUpgradeを実装していないことに気付きました。初めてデータベースを作成したのにテーブルロジックが実装されていない可能性はありますか?設定 - >アプリケーション - >アプリケーションの管理でデータをクリアしてみてください。ちょうど推測

+0

おかげで..あなたの推測は私のために働いた.. :) – Ritu

+0

ありがとうジョーも私のために働いた:) –

1

onCreateメソッドが呼び出されていません。言う... createDatabaseと呼ばれるメソッドを作成し、そこにあなたのonCreateのコードを入れて、その後、一般的にONUPGRADEメソッドで使用されている

DataBaseHelper myDataBaseHelper; 
myDataBaseHelper.createDatabase(); 

のonCreateとしてcreateDatabaseを呼び出します。

0

データベースを変更する場合はアプリをアンインストールし、アプリをアンインストールして再インストールする必要があります。

関連する問題