2017-02-14 14 views
0

私はAndroid SQLite上で作業しています。 新しいテーブルを作成していて、テーブルに値を挿入しようとしています。 しかし、値を挿入しようとすると姓の列は表示されません。android sqlite such column error

私を助けてください。 下記のコードをご確認ください。

String query3 = "create table if not exists " + "SIGNUPINFO" + " ("         + "FirstName TEXT," + "LastName TEXT," + "EmailID TEXT," + "Password TEXT," 
+ "Phone TEXT," +"Security TEXT);"; 

db.execSQL(query3); 

String query5 = "INSERT INTO SIGNUPINFO" + " (FirstName,LastName,EmailID,Password,Phone,Security) " + "VALUES ('" 
+ firstName + "','" +lastName+ "','" + emailID + "','" +password+ "','" + phone+ "','" + "security" +"');"; 

db.execSQL(query5); 
+0

してください。ログのエラーを表示 –

+0

データベースのバージョンを更新せずにテーブルを更新しましたか?あなたのアプリケーションデータをクリアしてもう一度実行してみてください。テーブルが更新されていないかもしれません。 –

+0

root権限があれば、.dbファイルを取り出して、データベースが正常に作成されているかどうか確認してください。任意のDMBSツールを使用して、クエリを実行してください。あなたが貼り付けたコードを実行しただけでOKです。 – Dibzmania

答えて

1

同じ問題についてはrefernce答えをチェックしてください。お手伝いします。

さて、あなたはそのために、あなたと同じテーブルに新しい列を追加するとき、それは が起こることよりも、テーブルを作成するための構文についてconfindentしている場合...

1)アンインストールをお使いのデバイスと実行からもう一度。

OR

2)設定 - >アプリケーション - > clearDataメソッド

OR

3)あなたの "DatabaseHandler" クラスの変更DATABASE_NAME(私は同じ問題に直面した しかし、 DATABASE_NAMEを変更します。

OR

4)あなたの "DatabaseHandler" クラスの変更DATABASE_VERSION (あなたはそれがautimaticallyアップグレードされますよりも、新しい列を追加した場合)

public DatabaseHandler(Context context) { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     } 
+1

ありがとう!これは – user3571631

+0

を処理しましたので、@ user3571631に印を付けてください。 – Kush

-2

このコードをアプリケーションクラスに入れ、データベースをexternalstorageに入れます。

次に、データベーステーブルに作成された列を確認することができます。

public static void copyDataBase(Context mActivity) throws IOException { 
     Log.d("tag", "Copy Database called"); 
     InputStream myInput = new FileInputStream(new File("/data/data/" 
       + mActivity.getPackageName() + "/databases/" 
       + "yourdb.sqlite")); 
     File files = new File(Environment.getExternalStorageDirectory() 
       + "/files/"); 
     files.mkdirs(); 
     String outFileName = Environment.getExternalStorageDirectory() 
       + "/yourdb.sqlite"; 
     OutputStream myOutput = new FileOutputStream(outFileName); 
     byte[] buffer = new byte[1024]; 
     int bufferLength; 
     while ((bufferLength = myInput.read(buffer)) > 0) { 
      myOutput.write(buffer, 0, bufferLength); 
     } 
     myOutput.flush(); 
     myOutput.close(); 
     myInput.close(); 
     Log.d("tag", "Copy Database Done"); 
    } 

私はあなたに役立つことを願っています。

関連する問題