I'm trying to implement a sqlite database for my code to save basic variables. However, when running on the emulator, I get a no column error. Any insight would be appreciated. The error:
(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 (?,?,?)
My code is as follows:
import android.provider.BaseColumns;
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");
}
}
and the activity is just
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);
}
}
Any help would be appreciated.
Aucun commentaire:
Enregistrer un commentaire