0
J'essaie d'implémenter une base de données sqlite pour mon code afin de sauvegarder les variables de base. Cependant, lors de l'exécution sur l'émulateur, j'obtiens une erreur sans colonne. Toute idée serait appréciée. L'erreur:Aucune erreur de colonne lors de la création de la table SQLite dans Android avec Android Studio
(1) table reg_info has no column named user_pass
04-08 00:28:35.402 3133-3133/com.example.cowman897.sqlitedatabase E/SQLiteDatabase﹕ Error inserting user_pass=ghd user_ass=ggg user_name=sd
android.database.sqlite.SQLiteException: table reg_info has no column named user_pass (code 1): , while compiling: INSERT INTO reg_info(user_pass,user_ass,user_name) VALUES (?,?,?)
Mon code est le suivant:
public class TableData {
public TableData() {
}
public static abstract class TableInfo implements BaseColumns {
public static final String USER_NAME = "user_name";
public static final String USER_PASS = "user_pass";
public static final String USER_ASS = "user_ass";
public static final String DATABASE_NAME = "user_info";
public static final String TABLE_NAME = "reg_info";
}
}
public class DatabaseOperations extends SQLiteOpenHelper {
public static final int database_version = 3;
public String CREATE_QUERY = "create table " + TableData.TableInfo.TABLE_NAME + " (" + null + " integer primary key autoincrement, " + TableData.TableInfo.USER_NAME + " text not null, " + TableData.TableInfo.USER_PASS + " text not null, " + TableData.TableInfo.USER_ASS + " text not null);";
public DatabaseOperations(Context context) {
super(context, TableData.TableInfo.DATABASE_NAME, null, database_version);
Log.d("Database operations", "Database Created");
}
@Override
public void onCreate(SQLiteDatabase sdb) {
sdb.execSQL(CREATE_QUERY);
Log.d("Database operations", "Table Created");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void putInformation(DatabaseOperations dop, String name, String pass, String ass) {
SQLiteDatabase SQ = dop.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(TableData.TableInfo.USER_NAME, name);
cv.put(TableData.TableInfo.USER_PASS, pass);
cv.put(TableData.TableInfo.USER_ASS, ass);
long k = SQ.insert(TableData.TableInfo.TABLE_NAME, null, cv);
Log.d("Database operations", "One raw inserted");
}
}
et l'activité est juste
public class MainActivity extends ActionBarActivity {
Button sub;
String Class, Date, Assignment;
EditText Class_Field, Date_Field, Assignment_Field;
Context ctx = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sub = (Button) findViewById(R.id.button);
Class_Field = (EditText) findViewById(R.id.editText);
Date_Field = (EditText) findViewById(R.id.editText2);
Assignment_Field = (EditText) findViewById(R.id.editText3);
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Class = Class_Field.getText().toString();
Date = Date_Field.getText().toString();
Assignment = Assignment_Field.getText().toString();
DatabaseOperations DB = new DatabaseOperations(ctx);
DB.putInformation(DB, Class, Date, Assignment);
Toast.makeText(getBaseContext(), "Assignment Added", Toast.LENGTH_LONG).show();
finish();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Toute aide serait appréciée.
Je pense que votre table est pas créé ... –
Avez-vous ajoutez la colonne 'user_pass' plus tard dans votre table? Il se peut qu'une fois que votre base de données est créée et que vous changiez de base de données, les nouveaux changements de base de données n'aient pas lieu. Pour cela, vous devez désinstaller l'application et l'exécuter à nouveau. @ user2850572 – Pooja
Quelle est cette chose nulle dans l'instruction create? – drulabs